OpenInspection is open source home inspection software — a complete inspection stack: inspector dashboard, public booking widget, a field-ready inspection editor, professional HTML reports with e-signatures, AI assistance, and PWA offline support, all running on Cloudflare's edge and self-hosted on a single Worker.
Architecture
Single Cloudflare Worker (workers/app.ts) — a Hono entry that mounts the full API in-process and delegates page routes to React Router v8 SSR (the cloudflare/react-router-hono-fullstack-template shape)
API (server/) — Hono + Drizzle + D1, handles all business logic
Web (app/) — React Router v8 + React 19 + Tailwind v4, SSR on CF Workers
Shared UI (packages/shared-ui/) — Design System 0523 token-based components
One deployable; React Router loaders/actions call the API directly through an in-process API_WORKER self-binding (no network hop, no second worker)
Inspector workflow
3-pane editor; a new workspace starts with 250+ canned comments, 80 repair items, 4 rating systems and 17 templates
Keyboard-driven: 1-5 ratings, / canned-comment library, ; snippets, ? cheatsheet, ?K palette in the workspace
Simultaneous editing — inspection results are a Yjs CRDT in a Durable Object
Offline-capable PWA with photo upload queue
Migrate from Spectora in under 5 minutes via paste-JSON import
Customer experience
Company-level public booking widget (/book/<slug>) with auto-assignment, optional inspector choice, and 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 / referral
Agent CRM with referral tracking
"Share with buyer" link generation
Recommendations export
Self-host friendly
Runs standalone (single-tenant) by default — one fixed tenant holds all your data, no subdomains to manage
Branded UI (logo, colors) configurable in Settings
Tenant-scoped D1 data isolation baked into every table