Bells Angels
A warm, unfussy home for a women's cycling club — rides, membership, and a gallery, with none of the lycra-clad intimidation. Built to feel like the club: welcoming first, sporty second.
Five years shipping production web platforms. Comfortable owning a feature from Postgres schema through Spring Boot API into a React / TypeScript UI. Generalist by preference — most at home where product meets data meets interface.
Event booking for community clubs. Organisers embed a booking widget on their own website; attendees RSVP with no account. Every booking builds the club's attendee ledger — who's loyal, who's lapsed, who to reach next.
Read case studyUpload course material, get adaptive question banks back. A multi-provider LLM router with automatic fallback, spaced-repetition scoring, and sharing enforced by Postgres row-level security.
Read case studyPrivate portal for freelance hosting clients — live uptime, Stripe billing, and a terminal-style login on a hardened cookie-token auth layer.
Read case studyPersonal multi-tenant starter — subdomain routing, tenant-scoped Postgres, organisation auth, Stripe billing. Built to compress MVP delivery time.
Most notably a check-in / check-out safety tool for social workers, alerting admins with live location when a worker misses check-out. Blank repo to working demo in a weekend.
Sites I design, build, and host end-to-end for small organisations. Each carries its own palette — hover a colour to read it, click to copy.
A warm, unfussy home for a women's cycling club — rides, membership, and a gallery, with none of the lycra-clad intimidation. Built to feel like the club: welcoming first, sporty second.
A property group working across management, serviced stays, and investment — presented in strict black and white. The discipline of the palette does the talking: credentials, numbers, no noise.
Five years,
two enterprises,
and a handful of solo builds.
Companies, roles, and all the context are available on request.