Skip to main content
A complete reformer Pilates studio website you can clone and deploy today. Tensile is built for class-based fitness studios: a weekly timetable across several studios, where every class names its instructor and shows the beds left in the room, plus private sessions, workshops and live online classes. Start here for a Pilates, yoga, barre, spin or boutique fitness studio. It runs on the same Storefront API and typed TypeScript SDK as Haar, Frisor, Clear Care, VOLT, NOIR Drive, Fluently and Bali Villa Rentals. It’s set in Berlin (EUR, Europe/Berlin) with three studios (Mitte, Kreuzberg, Prenzlauer Berg), live online classes and eight instructors. The design is technical but warm: pale concrete, ink and steel, with the real reformer spring colours (green, yellow, blue, red) as the intensity scale across the site.

Live demo

template-reformer.vercel.app

Source code

letsopencals/template-reformer (MIT)

Deploy to Vercel

One-click deploy

Build it with AI

classes-and-lessons reference
Tensile reformer Pilates website template on a laptop and a phone in a pale concrete reformer studio

Tensile — the storefront on desktop and mobile

Tensile template homepage hero with a reformer studio film, the three Berlin studios and a first-class call to action

Homepage hero — the studio, the week's classes and a first-class offer up front

The timetable

One week across every studio and the online room. Each class shows its instructor, its spring colour and a row of bed pips for the beds left. Filter by studio, class, level, instructor or time of day, and share the filtered URL. A class that’s sold out reads Full, with a “next with space” link to the next class of the same type that still has a bed.
Tensile template weekly timetable with studio and class filters, bed pips on each class and a Full class pointing to the next class with space

Timetable — the week across three studios and online, with beds left and Full classes

Tensile template class sheet with an SVG room plan of reformer beds, add-ons, a price preview and a book button

Class sheet — the room plan, extras, the price with any discount, and the policy, then on to checkout

The studio model

This is the part worth copying even if you never ship Tensile itself. It uses existing Opencals features only.

What’s inside

Tensile template privates page with 1:1 and duet sessions at each studio and their next available times

Privates — 1:1 and duet sessions per studio on live times

Tensile template account page listing booked classes with move and cancel buttons, a Join button for an online class and a level path

Your week — upcoming classes with move, cancel and Join, plus the level path

Tensile template timetable on a mobile screen with a day strip and bed pips

Mobile — the timetable at phone size

Get started

1

Clone and install

2

Add your API key

Create a store in the Opencals dashboard and choose the Reformer Pilates Studio dataset preset (category Pilates & fitness, reformer_studio). It seeds the three studios and the online room, eight instructors, the weekly timetable, privates, workshops, add-ons, checkout questions with the waiver, the three discounts and sample bookings, some of them Full. Then grab a private storefront key (spk_, see API keys) and set OPENCALS_API_KEY and AUTH_SECRET in .env.local.
3

Run it

Your classes, instructors and timetable render immediately.
4

Deploy

Push to your own repo and deploy to Vercel, or host anywhere Next.js runs.
Pages are server-rendered, so their API calls carry no browser Origin. Leave allowed origins empty on the key you give this template, or those calls are rejected.
Set Storefront Base URL in your dashboard (Settings → API) to your deployed domain. Every customer link (view, reschedule, cancel, leave feedback) is built as {storefrontBaseUrl}/link/{token}, so if it still points at localhost those emailed links go nowhere.

Make it yours

MIT-licensed: rebrand it, restructure it, or use it for client work. Studio knowledge lives in lib/site-config.ts: studios with their rooms and bed plans, instructor bios, class meta (spring, level, what to bring), the level path, policies, the off-peak window and add-on copy. Every colour and font is a Tailwind v4 @theme token in app/globals.css:
Building a different class-based studio with an AI agent? The build-booking-site skill has a classes-and-lessons reference with the full pattern, including Full classes.
Last modified on October 24, 2026