Permit and inspection deadline tracking for contractors

Micro-SaaSWeb1 weekNext.jsSupabaseTwilio

The idea

A small GC running six jobs is tracking a dozen permits in his head, and permits die quietly: most jurisdictions void them after 180 days without a passed inspection. An expired permit means re-filing fees, idle subcontractors, an inspection queue joined from the back, and a homeowner asking why the job has stopped. It happens to every small contractor eventually, and it is pure calendar failure.

Buildertrend and JobTread treat the permit as one text field on a job. This flips the hierarchy: permits and their inspection clocks are the entire product, with the one detail generic reminder apps miss, that a passed inspection resets the expiry clock in most jurisdictions.

Who pays

Small general contractors and owner-operator remodelers pay 25 USD/month; one avoided re-filing, at hundreds in fees plus a week of schedule slip, pays for years. The buyer is the owner, who is also the person the 6am job-site texts wake up. Distribution: contractor subreddits and Facebook groups, local home builders association chapters, and content targeting what happens when a building permit expires.

MVP scope

  • Jobs with permits: number, type, jurisdiction, dates, permit card photo
  • Inspection checklist per permit with pass logging, photos, and clock-reset rule
  • Cross-job countdown dashboard sorted by days remaining
  • Aggregated morning SMS alerts at 30/14/7 days
  • Job archiving with retained history
  • Skip for v1: jurisdiction API integrations, sub and client access, scheduling, document management beyond permit photos
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build PermitWatch, a web app that tracks permit expiries and inspection milestones across a small general contractor's active jobs.

Stack: Next.js (App Router), Supabase (Postgres + auth + storage), Twilio for SMS alerts.

Core flow: the contractor creates a job (name, address, client) and adds its permits: permit number, type (building, electrical, plumbing, mechanical), issuing jurisdiction, issue date, and expiry date, plus a photo of the permit card. Many jurisdictions extend a permit when an inspection passes, so each permit has a toggle: passing an inspection resets the expiry clock by N days (configurable per permit, default 180). Each permit also carries an inspection checklist (rough-in, framing, final, custom entries); logging a pass records date, inspector name, notes, and photos, and applies the extension if toggled. The home dashboard is a single countdown list of every permit across every job sorted by days remaining, colour-coded, with automatic SMS alerts to the contractor at 30, 14, and 7 days before any expiry.

Pages: magic-link login, countdown dashboard, job list, job detail with its permits, permit detail with inspection log and photos, alert settings (who gets texts, thresholds), billing.

Implementation details: alerts must aggregate, one morning text listing everything crossing a threshold that day, never one text per permit. Archive completed jobs out of the dashboard without deleting history.

Pricing: 25 USD/month via Stripe-hosted checkout, 30-day trial, unlimited jobs, up to 3 phone numbers on alerts.

// More Micro-SaaS ideas