Skip to main content
TemplateOpen source

VOLT goes multi-club: a live hall map, a crew-and-kit checkout and match tickets

VOLT now models a network of clubs: four locations (Madrid, Barcelona, Valencia, Málaga), each with its own padel doubles, padel singles and squash courts. The VOLT Padel & Squash dataset seeds the whole network.
  • Club-first booking, full screen. /book starts from one club: the linked one, the one the browser remembers, or “Near me” from the club coordinates. New visitors pick from photo cards with each club’s soonest free court.
  • Hall map. Every court from above, doubles wide and singles narrow, lit for one start time (free, free within the hour, free later, taken). Drag a time bar over the free-courts pulse; “Book 19:30” takes the best free court.
  • Grid view. Courts × half hours, now per club, with the same duration popover.
  • One request per club. A server route reads each court’s merged availability once (no per-day or per-cell calls), caches it for 60 seconds and invalidates it on booking, cancel or reschedule; the browser computes the map, grid and “free from” locally.
  • Game flow checkout. Numbered steps with a sticky match card: court (any or exact) → crew (names, email invites as appointment guests, price per player) → kit (add-ons) → details → payment. Trainings use the same flow with level, club, coach, day and places.
  • Match-ticket confirmation. The court from above with a spot per player, a countdown, calendar file, directions, “Same time next week?”.
  • My games. Stats, the next game as a ticket, past games with “Book again”, crew invites, change time and cancel.
  • /preview/[screen] renders every confirmation and account state from fixtures.
Template docs · GitHub ↗
TemplateOpen source

VOLT — open-source padel & squash club booking template

The fourth open-source Opencals template is live, and the first one built around staffless resources instead of staff-led appointments. VOLT is a padel & squash club booking website: the same Storefront API and typed TypeScript SDK as Haar, Frisor and Clear Care, with a dark technical design and a different booking shape.Two booking surfaces over one store: an in-page court grid for rentals, and a classic coach-led flow for lessons and group classes. Every screen is built with the public API.
  • Multi-court booking grid — every court and every open slot for a day in one view, with a padel/squash toggle
  • Custom durations — 30-minute steps to two hours, composed from consecutive free slots and priced live
  • Staffless resources — courts use the Self rule with maxAttendees: 1, so each court is an independent, exclusively-booked unit
  • Coach-led training — filter by sport, level and format; “Any coach — next available” leads the picker; group classes show live “N left” capacity
  • Add-ons and custom checkout questions, Stripe payments with deposit support
  • Passwordless customer accounts — 6-digit email login with password fallback, auto-login after checkout, one-time email links via /link/[token]
  • SportsActivityLocation structured data, Open Graph, robots.txt and sitemap.xml configured
  • Stack: Next.js 15, TypeScript, Tailwind v4, Framer Motion, @opencals/storefront-sdk v0.3.14
  • MIT licensed — clone, rebrand, deploy. One-click Vercel deploy.
If you are booking courts, bays, lanes, studios or rooms rather than people, VOLT is the closest starting point of the four.Live demo ↗ · GitHub ↗ · Template docs
Last modified on October 24, 2026