For surf schools
Booking software for surf schools on Shopify
A beginner lesson is capped by two things at once: how many students an instructor can safely watch in the water, and how many wetsuits you own in the sizes that turned up. CapFlow Booking sells the smaller of those two numbers through your existing Shopify checkout.
The way it actually goes wrong
A beach break school runs beginner group lessons at 10:00, 12:30 and 15:00 through the season, with board and wetsuit hire included. On Shopify the obvious approach is a product per lesson with inventory set to the number of places.
Inventory sits on a variant, not on a date and time, so somebody has to rebuild the variants every week as the timetable shifts with the tides. On a hot August Saturday the 10:00 beginner lesson takes 14 bookings while two instructors are on shift. At a 1:8 beginner ratio that is 16 on paper, but only 12 steamers in the sizes that walked up the beach. The instructor either runs a lesson they cannot safely supervise, or sends paying customers back to the car park at 09:50.
Capacity lives on the timeslot. You set the beginner lesson resource to the real number, the one your ratio and your wetsuit rack agree on, write the weekly rule once for the season, and CapFlow Booking generates every lesson. The last place closes the lesson. The next customer sees it as full before they reach the cart, on the website, at home, the night before.
Capacity set by ratio, not by optimism
Each lesson resource carries its own number. Two instructors at 1:8 is 16, one instructor is 8, and the widget will not sell past it. Holds are atomic for ten minutes during checkout, so two people racing for the last place cannot both get it.
A surf camp week booked in one go
A five day camp is five consecutive sessions, not a single product. Multi-slot booking lets the customer take Monday to Friday in one transaction, and the server checks the sessions really are back-to-back before it prices them.
August is not October
Schedules are weekly rules per season. Run three lessons a day through the summer, drop to weekends only from late September, and change the whole autumn timetable by editing one rule rather than 60 entries.
Kit hire sold with the lesson
Board and wetsuit hire, and anything else you rent, can be offered as add-ons inside the booking flow. It goes in the same cart, so the customer pays once and you are not taking cash on the sand.
Women's weekends and competitions
One-off sessions run as events with their own capacity, pricing and access restrictions. An event blocks the resource, so nobody can sell a regular beginner lesson into the same instructors and the same rack at the same time.
A register on the beach
The check-in dashboard shows today's arrivals with short booking codes like gold-rose-0427, readable from a phone in the van. No-shows are recorded, so you can see whether the 08:00 dawn lesson is worth keeping.
The two numbers that cap a lesson
Every surf school owner can tell you their instructor ratio. Beginners at 1:8, improvers a bit looser, kids tighter than that, and whatever your ISA or Surfing England style qualification and your insurer have agreed in writing. It is the number you would defend to a lifeguard.
The second number is less official and just as binding: the wetsuits on the rack, by size. Sixteen places at 1:8 means nothing if eleven of the fourteen people who booked need a medium and you own seven. Boards are usually the easier half, because a stack of soft-tops is cheap to add and takes one shape. Steamers are not.
CapFlow Booking does not know about either of those things directly. What it does is let you put the real limit on the resource, once, and then refuse to sell past it. That sounds small. It is the difference between finding out at 09:50 on the sand and finding out never, because the fourteenth booking was never possible.
What a school setup looks like
| CapFlow concept | In surf school language |
|---|---|
| Resource | Beginner lessons on the main beach, improvers at the point, private coaching |
| Service | Two hour beginner group, 90 minute improver, one to one, kids’ club |
| Schedule | The summer timetable, as weekly rules |
| Timeslot | One lesson on one day |
| Multi-slot booking | A five day surf camp week |
| Add-on | Board hire, wetsuit hire, boots and gloves in October |
| Event | Women’s weekend, a competition, a coaching clinic |
| Membership | Season pass, ten lesson clip card |
A resource is not a person. It is a block of teaching capacity on a stretch of beach, and that is usually the right shape for a school, because on any given Saturday you do not care which of your three coaches takes the 12:30. If your customers book a named coach and that coach’s own diary is what they are buying, an appointment-style app is a better fit.
Camp weeks, and why they are not five bookings
The five day camp is where most Shopify workarounds fall over. Sold as a single product, it has no relationship to the lessons in the timetable, so the Wednesday session shows as having space it does not have. Sold as five separate bookings, the customer has to complete checkout five times and one of the five will be full.
Multi-slot booking is the middle path. The customer picks the start, takes the consecutive sessions in one transaction, and every one of those sessions is capacity checked on the server before payment. Nothing is reserved on trust.
Seasons, tides and the honest gap
The timetable in August is three lessons a day and a queue. The timetable in late October is one lesson at whatever time the tide allows, if enough people book. Weekly rules handle the seasonal shape well: write the summer pattern, generate it, write the autumn pattern when summer ends.
What weekly rules do not handle is the tide moving by roughly 50 minutes a day. If your 10:00 beginner lesson is really “two hours either side of low water”, you will be adjusting individual days by hand. Some schools sidestep this by publishing fixed lesson windows wide enough to absorb the drift and briefing the actual water time on the day. Others just do the manual edit each week. Either way, be clear that the app is not doing it for you.
Honest limits
Where the app will let a surf school down:
- No custom booking fields. No waiver, no height, weight or shoe size, no “have you surfed before”. You collect that separately.
- No tide awareness. Schedules are weekly rules. Tide-driven timings are a manual edit.
- No deposits. Camp weeks are paid in full at checkout or not at all.
- No waitlist. A full lesson is full, with no queue that promotes someone when a booking drops.
- No SMS or WhatsApp. Email only, which matters on a beach with poor signal.
- No rescheduling, by anyone. Customers can cancel themselves, but a booking cannot be moved to another lesson by them or by you. It has to be cancelled and rebooked.
- Single language. The widget and the emails run in one language, which is a real limit if half your August is visiting from abroad.
A school that lives or dies by tide-shifted timings and a signed disclaimer will be fighting this app every week. Better to know that in February than in July. The comparison pages cover what else is out there.
Questions from surf schools
Can I collect a disclaimer, plus height, weight and shoe size at booking?
No. CapFlow Booking has no custom booking fields, so there is no waiver checkbox and no place to capture sizing. You will still need your own form, whether that is a link in your confirmation email, a form on the site, or a clipboard at the hut. If getting sizing and a signature inside the booking flow is the thing you are shopping for, another app will suit you better.
Our lesson times move with the tide. Does that work?
Partly, and it is worth being clear about. Schedules are weekly rules, so you can set a pattern for a season and regenerate it when the pattern changes, but the app does not read a tide table. Day-by-day shifts around spring tides are a manual adjustment in the admin.
How do I stop selling more places than I have wetsuits?
Set the resource capacity to whichever limit binds first, usually the rack rather than the ratio. If you own 12 usable beginner steamers, the lesson caps at 12 even when three instructors are on. You may be tempted to split kit-hire and own-kit surfers into two resources so the own-kit group does not eat the rack. Do not, unless you are willing to police the ratio by hand: capacity in CapFlow Booking is per resource, and two resources means two caps that know nothing about each other. Twelve places on one and eight on the other is twenty students in one lesson, whatever your ratio says.
Can a customer move their lesson if the forecast goes flat and onshore?
They can cancel themselves from the link in the confirmation email, with your cancellation window and fee applied. Moving to another slot is not supported at all, by them or by your staff: the booking has to be cancelled and rebooked. In practice most schools would rather make that call anyway, but it is a phone call and two clicks, not a drag on a calendar.
Can I take a deposit for a surf camp week and the balance later?
No. Bookings go through the native Shopify checkout and are paid in full at the time of booking. There is no deposit or partial payment support.
Do you send a text the night before with the meet time?
No. Confirmation, cancellation and reminder emails go out from your own sender address. There is no SMS or WhatsApp channel.
Try it on your own schedule
Free plan, no time limit. Billing runs through Shopify if you upgrade.
Install free on Shopify