TL;DR
HydroBid is a Capacitor + React app for pressure washing / soft wash estimates. Quotes and appointments live in IndexedDB (Dexie). PDFs are generated on-device. Calendar reminders use local notifications. No account required for core quoting.
Product page: knoxstudios.net/apps/hydrobid.html
This post is a build log: architecture choices, freemium edges, and Android gotchas—not a feature dump dressed as a tutorial.
Why this app exists
Exterior cleaning crews often bid from the driveway. Cloud-only estimators fail when signal fails. We wanted:
Line items with sq ft / linear ft / hour / flat
Branded PDF share from the phone
Pipeline + calendar so follow-ups don’t die in SMS
Wash helpers: chemical mix, area, water usage
Local-first data (Dexie), Capacitor for Android
Architecture (high level)
┌─────────────────────────────────────────┐ │ React 19 + Vite + Tailwind (UI) │ │ QuoteBuilder · Calendar · Tools · PDF │ ├─────────────────────────────────────────┤ │ Dexie / IndexedDB │ session drafts │…