Moe Loubani
Back to projects
Fireventory
Next.jstRPCPostgreSQLPWA

Fireventory

Fire & Life-Safety Contractor Platform

Jul 2026

Turn every inspection deficiency into a proposal, repair, and invoice without spreadsheets or duplicate entry. Built for Canadian fire and life-safety contractors, in French and English.

A Canadian-first operating system for fire and life-safety contractors covering CRM, scheduling, offline inspections, deficiencies, proposals, work orders, invoicing, and payments in one pipeline.

Visit Fireventory

Overview

Fireventory is a Canadian-first operating system for fire and life-safety contractors, CRM, assets, recurring compliance, scheduling, offline field inspections, deficiencies, proposals, work orders, invoices, payments, a customer portal, and immutable reports, all in one pipeline. The core pitch is deficiency-to-revenue: an inspection finds a problem, that problem becomes a proposal, the proposal becomes a repair, the repair becomes an invoice, with no spreadsheets and no re-entering the same data three times.

Technical Challenges

  • Fire inspectors work in basements, mechanical rooms, and stairwells with no signal, so the field app has to capture full inspections offline and sync cleanly once it’s back online.
  • Ontario Fire Code and ULC/NFPA compliance means inspection templates, 17 of them, covering fire alarms, sprinklers, extinguishers, kitchen suppression, emergency lighting, fire doors, need to be accurate and auditable, not generic checklists.
  • Multi-tenant data has to be strictly isolated at the database level, a contractor’s data can never leak across tenants, and document numbers for invoices and reports can’t have gaps or collisions per tenant.
  • Being Canadian-first means bilingual EN/FR support and PIPEDA-compliant hosting aren’t add-ons, they’re baseline requirements from day one.

Solution

  • A Turborepo monorepo with a Fastify + tRPC API, a Next.js office app and customer portal, and a separate React PWA for field inspections.
  • The field PWA uses Vite and Dexie to store inspections locally and sync once connectivity returns, so an inspector’s day doesn’t depend on cell signal.
  • Prisma and Postgres 17 with Row-Level Security enforce multi-tenancy at the database layer, with gapless per-tenant numbering for invoices and reports.
  • BullMQ and Redis handle background jobs, MinIO stores documents and photos.
  • 17 inspection templates map directly to Ontario Fire Code and ULC/NFPA requirements, covering fire alarms, sprinklers, extinguishers, kitchen suppression, emergency lighting, and fire doors.
  • A 9-role permission matrix and a separate customer portal keep access scoped to what each person actually needs to see, backups and restores are tested with regular drills, and hosting is Canadian and PIPEDA-compliant.

Key Features

  • Deficiency-to-revenue pipeline: inspection to proposal to repair to invoice, no spreadsheets or duplicate entry
  • 17 inspection templates aligned to Ontario Fire Code and ULC/NFPA
  • Offline-capable field PWA (Vite + Dexie) for inspections with no signal
  • Immutable reports and gapless per-tenant document numbering
  • Postgres Row-Level Security multi-tenancy
  • 9-role permission matrix plus a dedicated customer portal
  • Bilingual EN/FR, PIPEDA-compliant Canadian hosting
  • Tested backup/restore drills
  • 14-day free trial