Hand-coded sites, one grammar each, measured by the scores the client sees.
9 SHOTS 4 clips, 4 Lighthouse stills, 1 review table
review tier / text
| html-page-validator | PASS 0/0/0 (26 pages, script byte-identical, CSP hash matches) |
|---|---|
| security-auditor | 0 CRIT 0 WARN; localStorage value guarded to light|dark; innerHTML literals only; stale _headers comment fixed (26 pages) |
| js-behavior-auditor | CRIT auto-advance wrap entered from the left -> FIXED advance() dir 1 (browser-verified 5->0 enter-next); WARN on() capture arg, teardown leaveTimer, keydown inside slides -> FIXED; dead bleed var removed; re-run clean |
| performance-auditor | likely-green for load; 'critical' theme-fade * repaint WAIVED with evidence: 392-node DOM, 0 and 58 ms long tasks at 4x CPU throttle, under the 200 ms INP budget, toggle-only |
| accessibility-auditor | WARN dark .bg-alt accent 4.35:1 -> FIXED #6A8EEC (5.02); WCAG 2.4.3 arrow keys from a slide CTA dropped focus -> FIXED; re-run found theme-fade stripping the slide park -> FIXED carve-out; predicted 95-100 light and dark |
| visual-qa | PASS 1440 light/dark + 390 light/dark; 0 first-party console errors |
| editorial-grammar-auditor | 0 Tier 1; WARN double rule 2px vs contract 1px -> contract corrected (approved mock v4 drew 2px); WARN dark error hue -> documented signal exception; WARN card sheet wording -> contract corrected (approved dark-a puts cards on paper); suggestion long centred text -> donate-path paragraphs + dash lists left on phones |
| anthony-web:html-page-validator | PASS, 1 warning |
|---|---|
| anthony-web:accessibility-auditor | PASS, predicted 97-100 (was 93 live) |
| anthony-web:performance-auditor | PASS, 2 warnings, predicted desktop ~93-95 / mobile 72-82 (was 87 / 61) |
| anthony-web:security-auditor | PASS after fix, 0 critical |
| anthony-web:js-behavior-auditor | PASS, 2 warnings WAIVED; focused re-check of setBackgroundInert PASS |
| anthony-web:visual-qa | PASS |
| anthony-web:voice-auditor (routed, Grammar A) | PASS 0/0/0 |
| impeccable detect.mjs | 0 findings (34 before waivers) |
littletheatretc.org / clip
littletheatretc.org / lighthouse

themontgomeryfarms.com / clip
themontgomeryfarms.com / lighthouse

amphionstudio.com / clip
amphionstudio.com / lighthouse

anthony-edward.com / clip
anthony-edward.com / lighthouse

Four live sites: a community theatre and a family farm, built for clients, and a music studio and my own acting and teaching site. All four are hand-written HTML, CSS and JavaScript with no framework and no build step. Each stays inside one design grammar: editorial for the theatre, farm for the farm, storybook for the studio and for mine.
The cost is repetition. With no templating, each of the theatre’s 26 pages carries its own copy of the head script, so a change is made 26 times and the review has to confirm the copies still match. That check is part of the review tier, and the theatre’s last review ran seven auditors over it before the deploy.
I measure what a visitor’s phone reports: Lighthouse, mobile, against the live pages on 2026-10-30. Accessibility is 100 on all four and performance runs 94 to 99. Two scores are not 100 and stay on the page. Best practices is 73 on my own site, where the run logged console errors and two deprecation warnings. SEO is 92 on the theatre’s, for six links without descriptive text.
Review to deploy, theatre site, 2026-10-03