Swish of the Curtain

Booking, Billing and Franchise Management for Swish of the Curtain

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.

1 → 8
Companies on one platform: head office plus seven franchise territories by the end of 2024
3-way
Automated payment split on every order: platform, franchisor and franchisee
1,000
Students a week on the books when the project began, across venues in Dorset and Hampshire
Sector
Performing arts education · franchised stage schools
Users
Head office, franchise owners, teachers, parents
Stack
Laravel API, Vue admin and shop, register PWA, Stripe Connect, Xero, Twilio
Engagement
Scoping consultation, bespoke build, franchise re-engineering; 2022 onwards
01

Four systems, one school, nothing joined up

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.

Scoping consultation
Admin CRM
Public shop & checkout
Register app
Zoho migration
Swish of the Curtain parent journey: class search on the public shop shown on a phone, passwordless sign-in screen and the class calendar, arranged as a tilted collage on a yellow background with a trial-to-subscription flow tile
The parent journey: class search by venue and age on the public shop, passwordless sign-in, and the class calendar the office works from.
02

From a two-week trial to a monthly subscription, without a spreadsheet

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.

before   Zoho, spreadsheets, web forms and a direct debit provider · registers built by hand each term
after   one platform · trials, subscriptions, registers and billing from the same records
monthly   one automated billing run charges every subscriber, retries failures and flags the rest for the office

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.

03

Registers that create themselves, and work without signal

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.

Before

Registers assembled by hand each term, attendance recorded on paper or in a spreadsheet, then re-keyed.

After

Registers generated for every session, taken on a phone, and written to the same record the office and the parent see.

04

Re-engineering one school’s system for a franchise network

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.

Swish of the Curtain franchise admin on a laptop listing franchise territories with their own shop domains, alongside a 1 to 8 companies stat tile and per-franchise Stripe and Xero settings
Franchise management in the admin: every territory with its own shop domain, staff and settings, and a super-admin “view as” to step into any of them.
05

One payment, three destinations

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.

Before

One Stripe account, one bank account, and a spreadsheet at month end to work out who was owed what.

After

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.

Diagram of the Stripe Connect payment split: one parent payment divided between a platform fee, the franchisor's brand commission and the franchisee payout, with per-franchise settings listed
The payment split: one parent payment divided between platform fee, franchisor commission and franchisee payout on every order, with per-franchise settings configured once.
06

Built once, then made to multiply

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.

07

Where it stands

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.

Running a business that’s about to multiply?

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.