Lead-first analytics for local businesses
The idea
The crowd has judged generic web analytics a commodity three times over β privacy-first pageview tools at $9-20/mo all rated replaceable. But a plumber never wanted pageviews in the first place. The question that matters is whether the $300/mo Google Ads spend or the free Business Profile produced the $4,000 repipe job, and no pageview dashboard can answer it because the lead arrives as a phone call.
The wedge is call tracking plus form attribution collapsed into one screen a non-marketer reads in ten seconds. CallRail answers this question but charges $45+/mo and looks like a tool for agencies, because it is one. A $29/mo product with five source buckets, junk-call filtering, and a three-sentence Monday email is what the owner actually wants β and the missed-calls count alone changes behavior in week one.
Who pays
The buyer is the owner of a plumbing, HVAC, roofing, landscaping, or similar local service business, paying $29/mo β self-serve, no sales call. The stronger channel is the agencies and freelancers who build these ownersβ websites: they install it on every client site to prove their own value, so offer a white-label tier later. Distribute through web-designer communities, local-SEO forums, and comparison content against CallRail pricing.
MVP scope
- One-tag install with five-bucket source classification, cookieless
- Dynamic number insertion with Twilio numbers per source, instant forwarding
- Call logging with junk-call filtering and missed-call tracking
- Form submission capture with matching attribution
- One-screen dashboard plus the Claude-written weekly email
- Skip for v1: keyword-level attribution, call recording/transcription, white-label, Google Ads API import
Build LeadLens, analytics for local service businesses that counts leads, not pageviews. Stack: Next.js (App Router) on Vercel, Twilio for tracking numbers and call webhooks, Postgres via Prisma for events and attribution, Claude API for the weekly plain-English email. Core flow: owner adds one script tag. The script classifies each visit's source into five buckets only β Google Ads, Google Business Profile, organic search, Facebook/Instagram, direct/other β and swaps the site's displayed phone number for a Twilio tracking number assigned per source (dynamic number insertion, 5 numbers per site). Calls forward instantly to the real line; Twilio webhooks log source, duration, and first-time-caller status. Form submissions are captured by listening for submit events on any form with a phone or email field, attributed to the same source buckets. Dashboard is one screen: this month's leads by source, calls vs forms, answered vs missed calls. No funnels, no segments, no jargon. Every Monday, Claude writes a three-sentence email: leads this week, best channel, one anomaly worth knowing (you missed 6 calls after 5pm). Non-obvious details: number-swap must run before first paint via an inline snippet to avoid flashing the real number; mark calls under 20 seconds as junk so wrong numbers do not inflate lead counts. Pricing: $29/mo including 5 tracking numbers and 500 call minutes, overage metered. Stripe billing, 14-day trial.
// More Micro-SaaS ideas
- 001
Invoicing for freelance film crew
Freelance film crew hand-build invoices with day rates, kit fees, OT, and per diems; generates production-ready invoices from a simple call-time log.
π© Micro-SaaS β‘ weekend - 002
Auto-generated graphics for youth sports leagues
Youth leagues wrangle Canva every single week; auto-generates schedule, matchup, and result graphics for every team straight from the fixture list.
π© Micro-SaaS π 1 week - 003
Restaurant websites built from the menu
Restaurant sites rot because menus change weekly; snap the menu and get a full site with schema markup, hours, and ordering links that stay in sync.
π© Micro-SaaS ποΈ 1 month - 004
Newsletter builder for PTAs and schools
PTA newsletters eat a volunteer's whole weekend; paste teacher submissions and get a designed, translated newsletter ready to send to every family.
π© Micro-SaaS β‘ weekend