Swimmge
Swimming school & booking platform
The brief
A fully custom Next.js platform for a swimming school — a three-step reservation wizard on the front, a complete admin CMS behind it, and a promo video generated in code rather than an editor.
Swimmge is the only project here with no CMS underneath it. The school needed booking, not brochureware: programme selection, a calendar that reflects real availability, and a reservation record staff can actually work from. That ruled out a plugin stack, so it is a Next.js application with Prisma over SQLite and a bespoke admin area.
The reservation flow runs in three steps — programme, date and time, contact details — with state held in the URL, so a half-finished booking survives a refresh or a shared link. Submissions land in the database and fire an email notification inside the same request.
Behind the login sits a CMS the owner uses without me: blog posts, gallery management, a lead inbox, and an editable landing page. The promo video on the homepage is a Remotion composition rendered to MP4 at build time, so the school can change a price or a headline and re-render the video without opening a video editor.
What shipped
- Three-step reservation wizard with URL-persisted state
- Custom admin CMS — posts, gallery, leads, landing page
- Promo video generated programmatically with Remotion
- Rate limiting, honeypot fields and CSP headers
- sitemap.xml, robots.txt and Search Console integration
- Role
- Full-stack build
- Year
- 2025


Next project
Personal brand & portfolio

