Skills

The tools behind our work.

What we use, and where you can see it working.

Front end

HTML and CSS
Semantic pages and responsive layouts that adapt from a small phone to a wide monitor, with no separate mobile site. Torque & Thunder
JavaScript
Interactive pages with no framework when none is needed: online booking, a repair tracker and a price estimator. Torque & Thunder
React
Component-based apps built with Vite, with their own booking flows and saved progress. Mud Club
TypeScript and Next.js
Typed apps with server rendering and server actions, with the logic kept apart from the pages so it can be tested. Rotabee
Forms and booking flows
Clear error messages, then choosing a service, a day and a time, with tracking or cancelling afterwards. Torque & Thunder
Interactive tools
Rota builders, symptom checkers and estimators that let visitors try something instead of reading long pages. Rotabee
Themes and motion
Light and dark themes that remember the visitor's choice, and motion that respects reduced-motion settings.

Back end

Node.js and SQLite
Services that keep running: a bot that receives GitHub webhooks, checks their signatures, stores every change and answers commands. Gitbot
Payments and email
Stripe checkout with signed webhooks, and contact forms that send email, each with a local stand-in for testing without keys. Rotabee
Lessons that run code
Learner Python running in the browser in a Web Worker, so a bad program can't freeze the app. Pebble
Python
Scripts, tools and small servers, including this site's preview server and page build.

Quality

Automated tests
Tests for the logic that matters, like rota warnings, spreadsheet parsing and webhook checks. Rotabee
Git and GitHub
Every change gets its own branch and pull request, with automated checks before it merges.
Accessibility
Keyboard navigation, visible focus, readable contrast, tap targets large enough for a thumb, and support for screen readers.
Performance
Fast pages with no heavy libraries, self-hosted fonts and images that load only when needed.
Design reviews
We check pages on phone and desktop, in both themes, and fix what we find in a separate pass.
AI-assisted development
We build with Claude Code to move fast, and we test what it builds before it's merged.
Start a project