A performing arts school running on Zoho, spreadsheets and hand-built registers. We built the platform that replaced them, then re-engineered it so a network of franchise territories could run on one system.
Swish of the Curtain teaches musical theatre, dance and drama to around a thousand students a week across venues in Dorset and Hampshire. In early 2022 the business ran on Zoho Creator, spreadsheets, web forms and a direct debit provider. Registers were built by hand each term, and working out who was due where meant, in the team’s own words, looking in four different places.
The enquiry that arrived through our website asked for a bespoke CRM, finance system and app in one. We started with a paid scoping consultation: two days on site and on video with the owner and bookkeeper, walking through how a parent finds a class, books a trial, becomes a subscriber and is billed month by month across a 36-week teaching year.
That produced a specification the client owned outright and could have taken to any developer. They chose to build it with us, and in May 2022 work started on three connected applications: an admin CRM, a public shop and checkout, and the API behind them.

The commercial heart of a stage school is the trial. A parent finds a class by their child’s age and postcode, books a two-week trial, and if the child stays, the trial rolls into a monthly subscription. Before, each of those steps was a separate system and a separate manual job.
We built it as one flow. The shop lists classes by venue and age group, takes the booking and the card; the admin converts trials into subscriptions with pro-rated first payments, sibling and multi-class discounts, joining fees and waiting lists handled by rules rather than by memory.
The monthly billing run replaced a direct debit provider that could not take one-off payments. Every card on file is charged on the same day, failed payments are retried and surfaced for the office to chase, and each payment reconciles back to its order.
Holiday camps and shows sit alongside term-time classes with their own rules: deposits and instalments for camps, audition-only entry and equal monthly payments for shows.
A register is generated automatically for every session, so the start-of-term job of building them by hand disappeared with the first release. Teachers check students in and out on their phones, and flags, incidents and class notes are logged against the child in the same place the office sees them.
Teachers work in church halls and school gyms where the Wi-Fi belongs to someone else and the signal comes and goes, so we later rebuilt the register as a progressive web app: it caches the day’s classes, takes attendance offline and syncs when a connection returns.
Registers assembled by hand each term, attendance recorded on paper or in a spreadsheet, then re-keyed.
Registers generated for every session, taken on a phone, and written to the same record the office and the parent see.
By the time the system went live in 2023, Swish had a bigger plan: franchising. New territories would open under franchisees who needed their own shop, their own bank account and their own staff, while head office kept sight of all of them. The software had been built for one company.
Rather than start again, we re-engineered it. Every record was already scoped to a company, so we made a company a franchise: its own shop domain, Stripe account, Xero connection, SMS sender and integration settings, plus a franchise owner role. A super-admin can step into any franchise with “view as” and see exactly what its owner sees.
The franchise phase was scoped, approved and built in the first half of 2024, and the first franchise shops went live in May. By the end of that year eight territories, from Dorchester to Chelmsford, were running on the platform.

The hard part of a franchise is money. A parent in Romsey pays one monthly fee, but that fee belongs to three parties: the software platform takes a percentage, the franchisor takes its commission, and the franchisee gets the rest. Working that out by hand across hundreds of payments a month is how franchises drown in reconciliation.
One Stripe account, one bank account, and a spreadsheet at month end to work out who was owed what.
Stripe Connect separate charges and transfers: the platform charges the parent, transfers each party’s share to its own account, and reverses the split automatically on refunds.
Every order carries its franchise code, so the same transaction reconciles in Stripe, in the accounts and on the franchise revenue dashboard. Commission rates are set per franchise, and balances and payouts are visible to head office and to each franchisee.

Nothing had to be rebuilt to go from one company to a franchise network. Company scoping, role-based permissions and an API-first design were in the original specification for a single school, and they are what made the franchise phase a 38-day project rather than a second system.
That is the argument for scoping properly at the start. The consultation cost a fraction of the build, and the decisions made in it are the reason the platform could take on franchising, camps, shows and a register app without a rewrite.
The same foundations have since carried the product further still, into a white-label offering for other schools. That is a story for another case study.
Swish of the Curtain runs head office and its franchise territories on the platform today: class search and booking on the shop, trials and subscriptions in the admin, registers on teachers’ phones, and a monthly billing run that pays three parties without a spreadsheet.
It began as a request for a CRM to replace Zoho. Understanding the business first is why the system could grow into something its owners had not yet planned.
Franchising, new territories, more than one company on one system. We scope the model first, then build the platform that keeps every party paid and every record in one place.