Skip to content
JJ Development [email protected]

DTS

Fire and rescue can see a site's inspections before they arrive.

Fire safety & inspection · In production

A multi-tenant platform for fire-safety and technical inspections: what was tested, when, what still needs fixing, and who needs to know before they arrive.

An inspection is only worth what someone can find out from it later. When the record lives in a binder in an office, the crew arriving at a location knows nothing about it until they are standing there. DTS was built to close that gap.

What it does

  • Inspections, assignments and locations
  • Products and equipment per site
  • Built-in task management
  • Invoice control and generation
  • Scheduled inspection generation
  • Automatic reminders
  • QR access to a location without a login
  • Signed public inspection reports

Known before arrival

The point of the system, in one line from its own documentation: fire and rescue can see the relevant inspections for a location before they arrive at it. Everything else in DTS exists to make that record trustworthy.

One database per customer
DTS is genuinely multi-tenant. Each customer is identified by domain and gets their own isolated Postgres database, with feature flags enabling only the modules they use. Customer data is never co-located.
The boring parts run themselves
Scheduled commands generate the inspections that are due, send the reminders, raise the invoices and deactivate expired products. These are the jobs that get missed when someone has to remember them.
PHPStan at level max
PHPStan at level max across the codebase, and a Pest suite with coverage reporting. In a system that carries fire-safety records, a type error is not a cosmetic problem.

Built with

  • Laravel 12
  • Vue 3
  • Inertia.js
  • PostgreSQL
  • Stancl Tenancy
  • Tailwind CSS

Out in the world