The first open-source SaaS-grade home inspection app. Self-host on Cloudflare for ~$0/month.
π§ͺ Try it in 60 seconds β no install, no credit card. Start a free 30-day trial on inspectorhub.io β
Magic-link signup. Your trial workspace ships pre-loaded with starter templates + canned comments so you can click through a real inspection immediately. Decide to self-host later? Your data exports cleanly β same codebase, same schema.
A complete home inspection software stack: inspector dashboard, public booking widget, mobile field form, professional HTML reports with e-signatures, AI assistance, multi-tenant routing, and PWA offline support β all running on Cloudflare's edge.
- API Worker (
api/) β Hono + Drizzle + D1, handles all business logic - Frontend Worker (
frontend/) β React Router v7 + React 18 + Tailwind v4, SSR on CF Workers - Shared UI (
packages/shared-ui/) β Design System 0523 token-based components - Both deploy as independent CF Workers; frontend calls API via Service Binding (zero-latency)
- 3-pane editor with 248 canned comments, slash-trigger snippet picker, AI rewrite
- Keyboard-driven: 1-5 ratings, βK palette,
/snippet picker,?HUD - Offline-capable PWA with photo upload queue
- Migrate from Spectora in under 5 minutes via paste-JSON import
- Public booking widget with Turnstile bot protection
- E-sign agreements with Ed25519 audit chain β server-rendered signed PDF + Certificate of Completion via Browser Run, evidence-pack zip with email delivery, public verifier URL (
/v/<token>) with QR code on PDFs + offline self-verify (/verify) for court-friendly independence from the server, optional inspector pre-sign - Branded report viewer with print-as-PDF
- Agent CRM with referral tracking
- "Share with buyer" link generation
- Recommendations export
- Subdomain routing
- Branded UI per tenant
- Tenant-scoped D1 data isolation
- Free to run: Cloudflare Workers Free tier covers a solo inspector's full year. Pay only for a domain (~$10).
- Yours: fork it, change templates, add integrations. No vendor lock-in.
- Fast: edge-deployed, < 100 ms response times globally
- Compliant: PBKDF2-SHA256 password hashing, hash-chained Ed25519 audit log on e-signatures (ESIGN Act + UETA), server-rendered PDF + Certificate of Completion via Browser Run, offline-verifiable evidence pack, multi-tenant data isolation
- Modern: React Router v7 + React 18 + Hono API + Drizzle + Tailwind v4 β small surface, easy to read
Not ready to commit to running infrastructure? Spin up a managed workspace at inspectorhub.io/register β 30-day free trial, no card. Useful for evaluating the editor, report viewer, and booking flow before you decide to self-host. You can export your data and move to a self-hosted deploy at any time.
- Click the Deploy to Cloudflare button above β this deploys the API Worker
- Follow the dashboard prompts to provision the bindings declared in
wrangler.toml.example: one D1 database, two R2 buckets (PHOTOS+REPORTS), and one KV namespace (TENANT_CACHE). The standalone profile additionally declares two Durable Object classes and one Workflow β Cloudflare creates these on first deploy. - Configure the frontend Worker config and run the deploy script from root:
cp frontend/wrangler.toml.example frontend/wrangler.toml # edit API_URL + SESSION_SECRET npm install npm run deploy:web # web only # or npm run deploy to deploy api + web together
- Visit your API Worker URL β
/setup(e.g.,https://openinspection.your-account.workers.dev/setup) - A 6-digit setup code is generated on first boot. The code itself is not printed in logs β recover it with one of:
- Recommended: set
SETUP_CODE=<any 6-digit value>as a Worker secret before deploying, then use that value at/setup - Or read the generated code from KV:
wrangler kv key get setup_verification_code --binding TENANT_CACHE(1-hour TTL)
- Recommended: set
The frontend calls the API via a Service Binding (zero-latency, no network hop). The API Worker is configured by the root
wrangler.toml(copy fromwrangler.toml.example); the Frontend Worker usesfrontend/wrangler.toml(copy fromfrontend/wrangler.toml.example) withmain = "./workers/app.ts"β the standardwrangler deployflow handles the rest.
git clone https://github.com/InspectorHub/OpenInspection
cd OpenInspection
npm install
npm run setup:cloudflare # provisions D1 / R2 / KV automatically
npm run dev # http://localhost:8788git clone https://github.com/InspectorHub/OpenInspection
cd OpenInspection
npm install
npm run setup:cloudflare -- --local # provisions a local dev environment
npm run devDetailed setup: docs/developers/02_deploy.md. Architecture overview: docs/developers/01_architecture.md.
- Deploy β first-time setup on Cloudflare
- Architecture β module map, request flow, cost model
- Contributing β code conventions and PR process
- Community β Discussions categories and where to talk
- Cloudflare Workers: edge runtime (dual Worker deploy β API + Frontend)
- React Router v7 + React 18: frontend SSR on Workers
- Hono + Zod OpenAPI: typed API layer
- Drizzle ORM + Cloudflare D1: SQLite at the edge
- Cloudflare R2 / KV: object storage and config cache
- Tailwind CSS: v4 (frontend, design system tokens + utility CSS) Β· v3 (API Worker, SSR report pages)
- Optional: Gemini AI, Stripe Connect, Resend email, Google Places
- π¬ Q&A
- π£ Roadmap & releases
- π‘ Ideas & feature requests
- π Issue tracker
If you'd rather skip the infrastructure work, InspectorHub offers a fully-hosted version of this software β same codebase, managed for you.
- 30-day free trial, no credit card required
- Simple per-seat pricing
- 30-day money-back guarantee
- Upgrade to self-hosted at any time β your data, your choice