← Back to selected work

The Denver Roofer

Company site + lead engine

Live

A local-SEO roofing site wired to a hardened contact-to-CRM lead pipeline. Built to rank, and to convert.

Role
Built & operate
Status
Live

The problem

A roofing company lives or dies on two things: being found in local search, and turning the traffic it earns into booked jobs. A marketing site that ranks but drops leads, or drowns in spam, fails at the only job that matters.

What it does

A roughly 30-page, SEO-driven marketing site backed by a contact-to-CRM lead pipeline. Every submission is validated, rate-limited, and spam-guarded, then persisted to Postgres and dual-notified so a real lead is never lost. The site is structured to rank in local search; the pipeline is built to convert.

  • ~30 pages engineered for local SEO
  • Validated, rate-limited, spam-guarded contact intake
  • Leads persisted to Postgres and dual-notified

How it was built / my role

I built it and I operate it. React and TypeScript on the front end, an Express backend, and Drizzle over Postgres on Neon. The lead path is hardened end-to-end, from the form on the page to the record in the CRM.

Stack
React / TSExpressDrizzlePostgres·NeonSEO