Homeowners want a rough price before they book an estimate, and a small crew can't afford to lose a lead in a text thread or a missed email.
The problem
What we built
- An estimate tool for roofing, siding and gutters that shows homeowners a price range, never a number they'll be held to.
- A built-in CRM: every request is saved and moved from new to contacted, quoted, won or lost, with notes.
- Pages for roofing, siding and gutters, and for each of 12 towns served.
- A storm damage and insurance guide.
- The company's real Google reviews, word for word.
What it solved
- Every lead is saved and tracked from first contact to won or lost, even if an email fails.
- Homeowners get a ballpark before they call, so calls start further along.
- The owners see their whole pipeline in one place.
Found on Google and AI
- Twelve town pages, each written for that town's conditions (oceanfront, bayfront or inland) instead of just swapping the name, so Google treats them as real pages.
- Business details, rating, services and FAQs marked up so Google can show them in results.
- A storm damage guide that answers what homeowners search for after a storm.
- An AI-readable summary generated from the business's own details.
Built with
- Next.js
- Postgres
- TypeScript
- Vercel
