Work · Frontend · Backend · Tech • 10min read
How we rebuilt MP-14's booking platform with Next.js, Firestore & Sanity
MP-14 runs professional youth sports camps across Europe. We replaced their manual Excel-and-bank-transfer workflow with a fully automated booking platform — handling payments, multilingual regions, athlete registration, GDPR consent, and email follow-up without a single manual step.
11 April 2026 · digiDEVS - Fredrik Aarvold
MP-14 runs professional sports camps — volleyball, basketball, gymnastics, figure skating — at venues across Italy, Croatia, and Austria. Their 2026 season already has 14 camps live, spanning age groups from 8 to 19 and ranging from day camps to full-week programmes.
When they came to us, every booking was a manual operation.
The problem with Excel and bank transfers
Before this project, a parent who wanted to book a spot for their child would trigger a multi-step staff process: a booking in a spreadsheet, a request to pay a deposit by bank transfer, then a member of staff manually checking the bank account, matching the transfer to the right customer by name, and updating the sheet. On top of that, athlete registration data — medical information, emergency contacts, age, dietary needs — was collected over email. GDPR consent was gathered informally. There was no systematic follow-up for parents who dropped off mid-process.
This works at small scale. It does not work when you're running camps across three countries, in multiple languages, for hundreds of young athletes per season.
What we built
We rebuilt their entire customer-facing platform on Next.js 14, with Firestore as the real-time database and Sanity as the content management system. The result is live at mp-14.com.
Multilingual, multi-region booking. The platform serves camps in English and Italian, with region-specific content for Italy, Croatia, and Austria. Content editors at MP-14 manage all camp listings — dates, prices, spot availability, age groups, locations — directly in Sanity without touching code. Spot counts update in real time via Firestore, so parents see exactly how many places remain.
Online payments with deposit handling. Deposits (€50 per camp) are collected at the point of booking through an integrated payment flow. Reconciliation is automatic — no more cross-referencing bank statements with a spreadsheet. The payment status lives in Firestore and triggers the next step in the pipeline automatically.
Athlete registration portal. After booking, parents receive an automated email with a link to a registration portal. There they enter all required athlete data in a structured form: personal details, age, medical information, emergency contacts. The data writes directly to Firestore, structured and queryable — not buried in an email inbox.
Digital GDPR consent and hospital permission. Within the same registration flow, parents formally accept GDPR terms and provide signed digital consent for MP-14 to arrange emergency medical treatment for their child if needed. Both are timestamped and stored with the athlete record — meeting the legal requirements that informal email consent does not.
Automated email pipeline. A trigger-based email sequence handles the entire customer journey: booking confirmation, registration reminder if the parent hasn't completed the athlete form, follow-up for incomplete GDPR steps, and a final confirmation once everything is in order. The MP-14 team no longer chases anyone manually.
Why this stack
Next.js 14 with the App Router gives fast server-rendered pages out of the box — important for SEO on the camps listing pages, where parents searching for "volleyball summer camp Italy" should land on real, indexed content. Firestore handles real-time spot availability without any infrastructure to manage. Sanity gives the MP-14 team genuine editorial control: launching a new camp, updating a price, or changing session dates takes minutes, not a developer.
The outcome
MP-14 now runs a self-managing booking operation. What previously required daily staff attention — chasing payments, matching transfers, collecting athlete data, sending follow-up emails — now runs on its own. The team focuses on what they're actually good at: delivering high-level youth sports coaching with internationally experienced coaches, in partnership with CBF Sport Academy.
The 2026 season has 14 camps already published and available for booking. Spot counts are ticking down in real time.
Want to replace a manual workflow with something that runs itself? Get in touch.