Golden State Windows
Golden State Windows — from a front-end prototype to a fast, indexable Bay Area site
A window and siding company's React prototype turned into a production site: lead capture with e-mail alerts, real business data, 16 prerendered pages, six city pages and real client reviews.
Prototype → production · 16 pages- Year
- 2026
- Duration
- July 2026
- Industry
- Home improvement — windows & siding
- Country
- United States (San Francisco Bay Area)
- Services
- Web Development, SEO
The results
-
16
Pages served as prerendered HTML, each with its own title and markup
-
6
City pages for the Peninsula, with local copy and FAQ
-
95
Lighthouse performance on desktop, with zero layout shift
-
100
Lighthouse SEO and best practices
Project overview
Golden State Windows replaces windows, installs doors and siding across the San Francisco Bay Area from its base in Daly City. The client came with a front-end prototype that looked finished, but it wasn’t a working business site yet.
The contact form sent nothing: every lead vanished after a “thank you” message. The business data contradicted itself, with two different founding years and credentials nobody had confirmed. Every page shared one title, so search engines and AI crawlers saw an empty single-page app. My job was to turn that prototype into a production site the company could put its name and its phone number on.
My role in the project
I personally took the project from the handoff to launch on goldenstatewindows.com. The areas I owned and delivered directly:
- An audit of the handoff, then a rebuild on Vite, React and TypeScript with a clean repository and Vercel deploys from git
- Lead capture on Supabase with e-mail alerts through Resend
- Real business data in one place, and every claim the company couldn’t confirm taken off the site
- SEO for a single-page app: per-page metadata, structured data and a prerender, so every route ships as real HTML
- Local pages, a reviews page and a portfolio built from the client’s own photos
- Performance, accessibility, security headers and a cookie banner wired to Google Analytics consent
What I built: leads and data
- The form validates every field and has a hidden spam trap. It writes each request to a database table that the public can add to but never read
- A database trigger calls an edge function that e-mails every new lead to the office. If the e-mail ever fails, the form still saves the request
- A thank-you page after sending, and Google Analytics 4 with Consent Mode tied to the cookie banner
- One source of truth for the address, phone, hours, service areas and the state contractor licence number, which shows on every page as California requires for contractor ads
- Honest copy: claims the client couldn’t back, such as a lifetime warranty or triple-pane glass, were removed from the pages, the metadata and the structured data
What I built: SEO and pages
- Every route gets its own title, description, canonical URL and structured data: the business with its licence and opening hours, its services, breadcrumbs and, on the city pages, FAQ
- A prerender step after each build opens all 16 pages in headless Chromium and saves them as full HTML, so Google and AI crawlers read the content without running JavaScript. Unknown addresses return a real 404
- A service-area hub and six city pages (Pacifica, Daly City, South San Francisco, San Mateo, San Bruno and Burlingame), each with its own copy and FAQ
- A reviews page with client video testimonials, written Google reviews and the company’s Yelp record. The reviews widget is wired into the React app by hand, because its standard embed doesn’t run in a single-page app. There’s no self-serving rating markup, which Google doesn’t allow
- A portfolio of 30 real project photos with captions, plus privacy, terms and cookie pages and animated 404 and thank-you pages
- An llms.txt file and static structured data for AI search
Stack and performance
React 18 and TypeScript on Vite, with Tailwind CSS and shadcn/ui components. Supabase provides Postgres with row-level security and Edge Functions, Resend sends the e-mail, and the site is hosted on Vercel. Images ship as AVIF and WebP in responsive sizes (the hero went from 155 KB to under 41 KB), the Outfit font is self-hosted, and routes load as separate chunks. Lighthouse on desktop gives 95 for performance with zero layout shift, and 100 for SEO and best practices. Content Security Policy, HSTS and the other security headers are set at the edge.
Key screens
Full homepage, desktop
Tech stack
- React 18
- TypeScript
- Vite
- Tailwind CSS + shadcn/ui
- Supabase (Postgres, RLS, Edge Functions)
- Resend
- Puppeteer prerender
- Vercel
Want a similar project done?
Tell me about the task. I will personally look at your project and suggest the right way to deliver it.
Discuss your project with me