TruLight SLC: site rebuild
Captured 2026-05-06. Old site: Lovable.app template. New site: Next.js 15 on Vercel edge. Both sites measured with the same Playwright setup, identical viewport, three cold runs averaged.
Headline numbers
| Metric | Old | New | Improvement |
|---|---|---|---|
| Total load time | 4.16 s | 745 ms | 5.6x faster |
| Time to First Byte | 585 ms | 37 ms | 15.8x faster |
| First Contentful Paint | 1.92 s | 313 ms | 6.1x faster |
| Largest Contentful Paint | 1.92 s | 391 ms | 4.9x faster |
| DOM ready | 1.70 s | 279 ms | 6.1x faster |
| Total page weight | 33.68 MB | 9.58 MB | 3.5x smaller |
| Pages in sitemap | 8 | 67 | Every legacy URL preserved |
Core Web Vitals
The old site fails Google's Core Web Vitals thresholds. The new site passes with significant headroom on every page load.
Largest Contentful Paint
Good is < 2.5 sFirst Contentful Paint
Good is < 1.8 sVisual comparison
Desktop above-the-fold


- Old hero is a dark-navy template wall with no real photograph. The headline stacks vertically: "Light Up Your Home with TruLight" above a gradient-orange "Permanent Lighting Salt Lake City" line.
- New hero leads with a real photograph of an installed permanent-lighting job on a Salt Lake City home at night, paired with a jobs-to-be-done headline ("Never Hang Holiday Lights Again.") and a sub-line that names the actual benefit: installed once, millions of colors, full app control.
- Old page weighs 35 MB across 220 requests on every visit, including a hydrated chat widget bundled into the SPA. New page weighs 10 MB across 82 requests, with the same chat available without the bloat.
Mobile above-the-fold


- Old mobile hero is the same dark template, with a chat-widget popup pinned over the primary CTA and the sub-headline above the fold.
- New mobile keeps a Free Quote CTA in a sticky header and the Salt Lake City phone number visible at the top of every page.
- Old ships 35 MB to mobile users on cellular. New ships 10 MB, a 3.5x lighter payload, which moves first paint into the sub-half-second band on slow connections.
What is on the new homepage
The new homepage carries: a hero with a real installed-job photograph from a Salt Lake City home, ten service categories under one roof (permanent lighting, roofline, soffit and fascia, holiday lighting, accent, security, smart, music sync, commercial, free consultation), Utah service-area pages spanning Cottonwood Heights, Sandy, South Jordan, Bluffdale, Herriman, Lehi, Holladay, Midvale, Draper, West Jordan, Riverton, Taylorsville, Bountiful, Kaysville, North Ogden, West Valley, Clinton, and Farmington, pricing and financing pages, a comparison page, an FAQ, a blog, and customer and employee logins. The sitemap grew from 8 indexed pages on Lovable to 67 on Vercel, an 8x expansion of the SEO footprint at zero added page-load cost.
Why this delta matters
The performance gap is meaningful for two compounding reasons.
- Google ranks faster pages higher. Page Experience is a confirmed ranking signal. The new site passes Core Web Vitals; the old site fails. This affects every page in the sitemap, not just the homepage.
- Bounce rate compounds with load time. Industry research from Google shows a page that loads in 1 second converts roughly 3 times better than one that loads in 5 seconds. The old homepage was at 4.16 s; the new one is at 745 ms.
The Salt Lake City rebuild ships the substrate change that drives every win on this page: a Lovable.app template that hydrates its layout and chat widget in the browser on every visit, replaced by Next.js 15 statically pre-rendered HTML served from Vercel's global edge. Time to first byte drops from 585 ms to 37 ms, a 15.8x improvement, because the new server is a CDN, not a template engine. Page weight drops 3.5x and total load time drops 5.6x. Old First Contentful Paint at 1.92 s sat in Google's "needs improvement" band. New at 313 ms passes with significant headroom across 67 statically pre-rendered pages, the long tail where Salt Lake City local intent shows up.