Not a website — a self-contained operating system for a local service business. It takes a lead, prices the job from a live materials database, checks it against the legal scope, dispatches the crew, schedules the work, collects payment, pays out the subs, tracks margin, and keeps a private line open to every worker — all from one server I designed, coded, and host myself.

The owner is a coordinator: he wins the job, then dispatches subcontractors and crew to do it. That model only works if the paperwork disappears — quoting, scheduling, dispatch, payment, payout, and follow-up all have to happen without a back office. So I built the back office: a single system that runs the whole operation, customer-facing and internal, on infrastructure that costs almost nothing to run.
An instant estimate priced against a live materials database (a Palm Coast Home-Depot pricing corpus) — labor + materials + minimum-hour rules → a firm price and deposit in ~1 minute.
The software enforces the Florida handyman exemption in code — caps the job value, blocks licensed trades, and detects job-splitting (one remodel disguised as small tickets) and refuses it. Compliance as a feature.
A schedule-slot / capacity engine books the work and assigns crew or subcontractors, with job-state transitions tracked end to end.
A built-in thread system — a private line to every worker and sub, plus a message channel on each customer quote. Not a bolt-on chat app; part of the operating record.
Customer payment collection (Stripe-ready), subcontractor payout tracking, and live margin on every job — the numbers that keep a coordinator solvent.
A password-gated back office (hashed auth, sessions, tokens) over the whole database — the owner runs the business from a phone.
Twilio SMS + email notifications: quote sent, booking confirmed, crew dispatched — the follow-ups happen on their own.
Full English / Spanish (server + client), and answer-engine optimization — an llms.txt plus 14+ JSON-LD schema types so Google and AI assistants read the business correctly.
The hard rules live in one place: a single rules engine owns quote math, minimum-hour and margin checks, the legal-scope gate, schedule-slot accounting, job-state transitions, and payout calculation. Everything the customer or the owner sees is a thin presentation layer over that engine — so the numbers are always right and the same logic can drop onto the next business unchanged.
| Server | Flask (Python) behind gunicorn — ~2,200 lines, hand-written |
| Data | SQLite operations database (8 tables) |
| Hosting | Self-hosted, Caddy reverse proxy, automatic HTTPS — the box is mine |
| Comms | Twilio SMS · transactional email · quote-thread messaging |
| Payments | Stripe-ready · deposits · subcontractor payouts · live margin tracking |
| Front end | Hand-coded, mobile-first, bilingual (EN / ES) |
| Discoverability | llms.txt + 14+ JSON-LD schema types (LocalBusiness, OfferCatalog, PriceSpecification, ReserveAction, FAQPage…) |
| Reusable | Multi-site by design — one core, per-business config |
I designed and animated the mascot too. The homeowner sees a friendly badge and a one-minute quote; underneath it is a compliance-gated dispatch platform. Brand and engineering, from the same hand.
One person designed the brand, wrote ~2,200 lines of back end, modeled the database, stood up the server, and shipped a business that runs itself — then built it to be reused for the next one. That's the whole thesis: I art-direct the launch and engineer the machine that runs underneath it.