~/work/blue-collar-field-kit.md
Back to workBlue Collar Field Kit
Offline-first estimating, invoicing, and job management for the trades — built so a field tech can write an estimate and capture the customer's sign-off with zero signal.
Founder & Lead Engineer · 2026
Blue Collar Field Kit is field software for the trades — electrical, HVAC, plumbing, roofing, landscaping — designed around the one moment the incumbents get wrong: standing in a customer’s basement with no signal.
The problem
Field service software assumes connectivity it doesn’t have. The chain that matters on a job site is build the estimate → get the customer to authorize it → get paid, and almost every established tool breaks somewhere in that chain the moment the bars drop. The work-capture side is just as broken: photos, materials used, and voice notes are how a crew proves what happened on a job, and today they scatter across a camera roll, a group text, and memory — then go unbilled.
The users make it harder. This is built for rugged, non-technical people on an iPad in a truck, not office staff at a desk. The bar I designed against: core actions in three taps, glove-friendly targets, and the “62-year-old lead tech” test — if a screen looks busy, it gets abandoned.
What I built
- Estimate-to-cash lifecycle: clients and jobsites → a job status pipeline → estimates with revisions → invoicing with gapless numbering and PDF generation → a multi-method payment ledger (cash, check, card, bank).
- On-site sign-off — the differentiator. An estimate carries a vector signature, signer
name, and timestamp, and a customer signature is the only path to
accepted; it renders on the estimate and its PDF. - Scheduling: a daily dispatch board with click-to-schedule and drag-to-reschedule, plus month-calendar and agenda views.
- Work capture and job costing: materials, photos, and voice notes attached to the job, then receipts with AI scanning rolled into material + labor vs. billed to produce a real margin per job.
- Crew and payroll surface: timecards with GPS clock in/out, employees with pay basis and user types, variable pay (piece rate and commission), and crews as standing groups plus a per-job roster.
- Back-office: role-appropriate dashboards, reports and exports, spreadsheet import/export for clients, jobs, and the price book, and corrections — voiding an invoice, payment, or estimate without breaking the ledger.
- Bilingual (English + Spanish) and mobile-first, phone → iPad → desktop, with locale parity enforced by tests rather than by hope.
How it’s built
A multi-tenant Laravel application with an Inertia + React front end and Tailwind, on PostgreSQL and Redis, running on AWS — private versioned S3 storage, SES for mail, and RDS with point-in-time retention and a rehearsed restore drill. Local development runs in Docker for parity with what deploys. Production, a self-resetting public demo, and an internal staff console each ship from their own branch.
Correctness is enforced rather than assumed: a 3,200-test PHPUnit suite plus a single
gate script — formatter, tests, ESLint, and tsc — that runs every check before a commit and
mirrors CI exactly, and a browser-verification pass that drives the running app across roles ×
languages × viewport widths, screenshotting each screen and failing on horizontal overflow or
console errors.
The web app is complete through the billing lifecycle. The offline sync engine (embedded SQLite kept in sync with Postgres) and the React Native iPad app are the next phase — and they’re the whole bet.
[0]