The office web app for an energy-efficiency contractor, used every day. Office staff run the business from it, and it’s the other half of Field Data Capture: techs capture work on the tablet, and the office sees it here.
What the office does in it
- Dispatch on a live board: drag jobs onto techs’ days, and watch the crews move on a live map that updates from the vehicles’ GPS.
- Keep track of customers: customers, projects and work orders in one place, with notes, photos and history from the field.
- Text customers: two-way SMS from inside the app, so confirmations and replies sit on the customer’s record.
- Bill the program and reconcile payments: match what was billed against what came back.
- Run tech payroll from the work techs actually completed.
- Read the business: about seventeen operational and financial reports, plus bulk imports from spreadsheets.

Screenshots use demo data. Every name and address is made up.
How it works
- One backend for office and field. Hub and the tablet app share one Supabase Postgres database. Changes from the field show up in the office without a manual import.
- Tenant isolation in the database. Every row is scoped to a company with row-level security, across seven roles, so access is enforced by Postgres, not just by the UI.
- Background workers handle batch jobs, imports and outside integrations (SMS, vehicle GPS, geocoding, PDFs, email).
- React and TypeScript on TanStack Start, with TanStack Query and Table, Tailwind, Leaflet for the map and dnd-kit for the board.
- Ships on merge. A merge to
maindeploys the app and the workers. Database changes go out as versioned migrations.
