All case studiesPermanent outdoor lighting · Salt Lake City

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

MetricOldNewImprovement
Total load time4.16 s745 ms5.6x faster
Time to First Byte585 ms37 ms15.8x faster
First Contentful Paint1.92 s313 ms6.1x faster
Largest Contentful Paint1.92 s391 ms4.9x faster
DOM ready1.70 s279 ms6.1x faster
Total page weight33.68 MB9.58 MB3.5x smaller
Pages in sitemap867Every 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 s
Old1.92 sGood
New391 msGood

First Contentful Paint

Good is < 1.8 s
Old1.92 sNeeds Improvement
New313 msGood

Visual comparison

Desktop above-the-fold

TruLight SLC old site, desktop
Old: Lovable.app template
TruLight SLC new site, desktop
New: Next.js 15 on Vercel edge
  • 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

TruLight SLC old site, mobile
Old
TruLight SLC new site, mobile
New
  • 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.

  1. 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.
  2. 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.