Skip to content

InspectorHub/OpenInspection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

200 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

OpenInspection

OpenInspection

The first open-source SaaS-grade home inspection app. Self-host on Cloudflare for ~$0/month.

Deploy to Cloudflare GitHub Discussions License: AGPL-3.0

πŸ§ͺ 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.


What it is

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.

Architecture

  • 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)

Inspector workflow

  • 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

Customer experience

  • 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 / referral

  • Agent CRM with referral tracking
  • "Share with buyer" link generation
  • Recommendations export

Multi-tenant

  • Subdomain routing
  • Branded UI per tenant
  • Tenant-scoped D1 data isolation

Why OpenInspection

  • 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

Quick start

Option 0: Try it hosted (fastest)

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.

Option 1: One-Click Deploy

  1. Click the Deploy to Cloudflare button above β€” this deploys the API Worker
  2. 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.
  3. 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
  4. Visit your API Worker URL β†’ /setup (e.g., https://openinspection.your-account.workers.dev/setup)
  5. 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)

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 from wrangler.toml.example); the Frontend Worker uses frontend/wrangler.toml (copy from frontend/wrangler.toml.example) with main = "./workers/app.ts" β€” the standard wrangler deploy flow handles the rest.

Option 2: CLI-First

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:8788

Option 3: Local development

git clone https://github.com/InspectorHub/OpenInspection
cd OpenInspection
npm install
npm run setup:cloudflare -- --local    # provisions a local dev environment
npm run dev

Detailed setup: docs/developers/02_deploy.md. Architecture overview: docs/developers/01_architecture.md.

Documentation

  • 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

Tech stack

  • 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

Community

Prefer a managed setup?

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

Try InspectorHub free β†’

License

GNU Affero General Public License v3.0.

About

Open-source home inspection software. Self-host on Cloudflare for ~$0/mo. Functional parity with Spectora and Inspector Toolbelt.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors