All work
022025Full-stack build

Swimmge

Swimming school & booking platform

Next.jsTypeScriptTailwind CSSPrismaRemotionREST API

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
Swimmge — primary view
Swimmge — detail 1

Next project

Obay Morad

Personal brand & portfolio