React · Cloudflare edge · Solo design + build
Alex Motors
2026
A cinematic one-page site for a real auto-repair workshop on the Irish border — designed and built solo, from the neon-sign concept to the edge backend, in three languages.
- ~75 kB
- Gzipped JS for the whole site, React 19 included
- 3 languages
- English, Irish (Gaeilge) and Russian on a custom typed i18n
- 0 cookies
- No third-party scripts or trackers — and no GDPR banner
Alex Motors is a working one-man garage on the Donegal–Derry border. The site is its entire digital presence: a single cinematic page that has to earn a local customer's trust in one scroll — services, customer reviews, an FAQ and instant ways to get in touch. I owned everything solo: concept and art direction, front end, edge backend, testing and CI.
The visual idea is a neon garage sign at night. The logo flickers on over a brick wall that runs seamlessly beneath all five full-screen scenes, and paging between them is owned entirely by native CSS scroll snap — after prototyping a JS wheel-paging layer I removed it completely, having proven that the browser's directional snapping does the job with zero scroll-hijacking bugs. Everything is built accessibility-first: ARIA tablists with roving tabindex, live regions, inert crossfade decks that keep all content crawlable, and every animation gated behind prefers-reduced-motion.
The site ships as a Cloudflare Worker: static assets at the edge plus a POST /api/contact endpoint that validates against the same shared contract as the browser form, filters bots with a honeypot, and hand-builds an RFC 5322 email for Cloudflare Email Routing. Three languages — English, Irish and Russian — run on a custom typed dictionary instead of an i18n library, including a unicode-range font fallback that serves a heavier Cyrillic cut so Russian display text matches the Latin face optically. Quality is enforced by Vitest unit tests, a Playwright smoke suite against the real dev server, and GitHub Actions CI on every PR.
Screens
Hero — the sign switches on
Services — master-detail showcase
Reviews — infinite carousel
FAQ — neon-glow master-detail
Contact — details & enquiry form
Tech stack
Core
- React 19
- TypeScript
- Vite 8
- Tailwind CSS v4
Edge & backend
- Cloudflare Workers
- Email Routing
- run_worker_first routing
- Wrangler
- Workers Builds
i18n & typography
- Custom typed i18n (EN / GA / RU)
- Bebas Neue
- Oswald Cyrillic (unicode-range)
- font-display: block
Motion & UX
- Native CSS scroll snap
- IntersectionObserver reveals
- CSS-only neon & flicker
- grid-rows accordion
- prefers-reduced-motion
Quality
- Vitest
- Playwright
- GitHub Actions CI
- oxlint
- Shared validation contract
SEO & a11y
- schema.org AutoRepair JSON-LD
- ARIA tablists & live regions
- inert crossfade decks
- Honeypot anti-spam