Built In Public

The Numbers

Real performance, accessibility and SEO scores for every page of this site. Measured by Google Lighthouse on every deploy. Verify the numbers yourself, one click each.

Auto-updated after each push to GitHub via Lighthouse CI. Last data refresh: 20 May 2026.

Lighthouse averages

Six representative pages, three runs each, scored by Google Lighthouse on every push to main.

0.98
Performance
1.00
Accessibility
1.00
Best Practices
1.00
SEO

Page-by-page breakdown

Each row is the average of three Lighthouse runs against the live site. The "Verify" link runs PageSpeed Insights live against the same URL in your browser. Anyone can check.

Page Perf A11y BP SEO Verify
/Homepage 0.96 1.00 1.00 1.00 Run PSI →
/websitesTradie Websites 0.99 1.00 1.00 1.00 Run PSI →
/lead-engineLead Engine 0.99 1.00 1.00 1.00 Run PSI →
/work/nates-rates-electricalNate's Rates case study 0.98 1.00 1.00 1.00 Run PSI →
/aboutAbout Shannon 0.98 1.00 1.00 1.00 Run PSI →
/contactContact 0.99 1.00 1.00 1.00 Run PSI →
What "1.00" actually means. It means Google Lighthouse measured every audit in that category as passing. Accessibility 1.00 means every WCAG check Lighthouse runs passed. Best Practices 1.00 means no security or modern-web flags. SEO 1.00 means crawlable, indexed, structured. Performance 0.96+ means LCP under 2.5s, CLS under 0.1, TBT in the green band on a simulated mid-range mobile device.

Page weight

Most tradie websites ship 3 to 8 megabytes per page. WordPress sites with builders routinely hit 12 MB. Here is what each page on this site weighs when fully loaded. Numbers are uncompressed bytes; Cloudflare gzips on the wire so what you actually download is roughly 30% smaller.

Page HTML CSS JS Fonts Images Total
/ 62 KB 129 KB 27 KB 78 KB 180 KB 476 KB
/websites 30 KB 129 KB 23 KB 78 KB 0 KB 260 KB
/lead-engine 24 KB 129 KB 25 KB 78 KB 0 KB 256 KB
/work/nates-rates-electrical 21 KB 129 KB 23 KB 78 KB 180 KB 431 KB
/about 18 KB 129 KB 23 KB 78 KB 92 KB 340 KB
/contact 15 KB 129 KB 27 KB 78 KB 0 KB 249 KB
Why CSS is the largest single file. All 17 pages share one stylesheet that covers every component and every variant. It is sent once and cached for a year on the visitor's device. Page two onward downloads only the new HTML, no further CSS, no further JS, no further fonts. A WordPress site with builder plugins typically ships 4-8 separate stylesheets per page, none cached, plus a fresh jQuery and 200 KB of theme JavaScript.

Performance budget

A budget is a number the site is not allowed to exceed. If a deploy pushes any of these over the target, the build fails. Right now everything is in the green.

Metric Target Actual Status
CSS size (uncompressed) ≤ 150 KB 129 KB PASS
JS per page (uncompressed) ≤ 50 KB ~27 KB PASS
Total page weight (uncompressed) ≤ 600 KB 476 KB max PASS
Largest Contentful Paint (mobile) ≤ 2.5 s < 2.0 s PASS
Cumulative Layout Shift ≤ 0.1 0 PASS
Lighthouse Accessibility (every page) = 1.00 1.00 PASS
Lighthouse Best Practices (every page) = 1.00 1.00 PASS
Lighthouse SEO (every page) = 1.00 1.00 PASS

Real-user performance

Lighthouse runs in a controlled lab environment with simulated network and CPU. The Chrome User Experience Report (CrUX) is the opposite: it measures real Chrome users in the wild and reports the 75th percentile.

Not in the CrUX dataset yet

CrUX only includes origins that meet a minimum traffic threshold over a 28-day window. This site is too new and too low-traffic to qualify. Once enough real users have visited from Chrome with usage statistics opted in, the field data will appear here automatically (p75 LCP, p75 INP, p75 CLS).

Until then, the lab numbers from Lighthouse are the available signal. Lab numbers tend to be optimistic compared to field data because they assume a clean network and a fresh device, but the gap is usually small for a site this light.

Recent deploys

The last several pushes to production, one line each. The site is built in the open: every change is in a public commit on GitHub.

v12.1.1
Trade explainer wired into site nav, footer, and home/services/websites pages
Outlined orange Why It Costs button added to desktop and mobile nav. Footer Company column gets a Why It Costs link on every page. Inline teaser CTAs added to home (between hero and trust bar), services (above foot prompt), and websites (right after the existing tier-picker CTA).
v12.1.0
Trade explainer page added at /why-it-costs-what-it-costs
New page with a tabbed switcher across seven trades (sparky, plumber, chippie, painter, concreter, tiler, landscaper). Each tab gives the customer-cost analogy in that trade’s language, then the page explains what’s actually in a Steel Cap site. ARIA tablist with hash deep linking and a no-JS fallback so crawlers see every trade.
v12.0.26
PE toggle moved left of accessibility trigger on mobile
Previously the Plain English toggle stacked above the accessibility button on mobile. New rule pins it to the left of the trigger at the same bottom anchor, so the two controls can never overlap regardless of text-scale.
v12.0.25
Built In Public dashboard added
This page. Live Lighthouse scores, page weight, performance budget, verification links.
v12.0.24
Compare-table contrast fix on /websites
Middle column header colour swapped to white. WCAG AA 4.5:1 ratio cleared. /websites accessibility 0.96 to 1.00.
v12.0.23
Plain English pair cleanup and doc refresh
Removed 57 redundant Plain English toggle pairs. Refactored the one broken li pair in the websites comparison table. Refreshed deployment notes.
v12.0.22
Hero Plain English pair specificity fix
Added CSS rules to override parent selector specificity on hero word-reveal spans.
v12.0.21
Mobile pass and sticky-CTA removal
Removed the bottom sticky-CTA bar across all pages. Added env(safe-area-inset-bottom) clearance on floating controls for iPhone home indicator. Added theme-color meta to all pages.

Full version history lives in CLOUDFLARE-DEPLOYMENT-NOTES.md in the repo.

The receipts

Numbers without sources are marketing. Every claim on this page is independently verifiable. Click any of these and check.

Live Lighthouse runs

PageSpeed Insights runs Lighthouse against the live URL in your browser. Same audits Google uses for SEO ranking factors.

Run on / →
Run on /websites →
Run on /lead-engine →
Security header grading

Two independent scanners check security headers, CSP strength, HTTPS configuration. Both currently grade this site at A or higher.

securityheaders.com →
Mozilla Observatory →
SSL Labs →
Schema and validation

Structured data validates against the schema.org spec. The HTML validates against the W3C HTML5 spec.

Schema validator →
W3C HTML validator →
Google Rich Results →
The source repo, on GitHub. Every commit, every CSS rule, every workflow run is in the public history. Lighthouse CI runs after every push to main and uploads the raw .json reports as artifacts (14-day retention). The repo is the source of truth for this dashboard - nothing on this page is calculated client-side beyond a freshness check against the same JSON files the CI writes.
Want this on your site?

Your numbers, in public.

This level of transparency is rare in the tradie web industry. If you want a site that can stand up to this kind of scrutiny, I build them.