Gym Hosting

Gym hosting where a full class stays full.

Class booking looks like ecommerce and behaves like inventory. The stock is twelve places in a room at seven on Tuesday, it resets every week, and a cached page showing places that no longer exist is the whole problem.

Capacity locked at bookingWaitlists promoted on cronFree migration
Booking-safe writesMember area uncachedPlatform cronDaily backupsFree SSL24/7 support
Built for the timetable

Everything a class schedule asks of a host.

A weekly grid that regenerates, a capacity that has to be exact, and a member area that can never be served from cache.

Places counted at the moment of booking

Remaining capacity is read and decremented inside a lock, so two members tapping book at the same second cannot both take the twelfth place.

Locked writesNo double booking

Member areas that never cache

The schedule a member sees includes what they have already booked. Those URLs bypass the page cache entirely, while the public timetable and class descriptions still serve from the edge.

Waitlists that actually promote

A cancellation is only useful if the next person is told. Promotion runs on platform cron rather than waiting for someone to load the page, so the place is offered while it is still wanted.

Scheduled promotionNotifications on time

Recurring classes expanded efficiently

A weekly class over a year is fifty-two instances. Those are generated and indexed rather than computed for every view of the timetable.

Health information treated as sensitive

Par-Q forms and injury notes are the most sensitive thing on the site. Those uploads are not publicly listable and are served through signed links.

Staging for a timetable change

A new term of classes changes recurrence, capacity and pricing at once. Do it on a clone and push it when the week turns over.

Operations

See the week before it starts.

The things that go wrong on a booking site go wrong quietly: a promotion job that stopped, a class that regenerated with the wrong capacity, a member area that got cached once.

  • One-click admin login, no shared passwords
  • Per-site resource and storage view
  • Plugin and core updates with per-item status
  • Restore any daily backup from the dashboard
Waitlist promotion
Platform cron
running
Class capacity
Locked at booking
exact
Member area
Cache bypassed
dynamic
Nightly backup
Replicated offsite
02:05
Performance

Monday morning, everyone booking at once.

Class release is a small traffic spike concentrated into a minute, and almost all of it is writes. That is the opposite of what a cache helps with.

Locked
capacity writes
Redis
object cache, on by default
NVMe
storage on every plan
MagicWP135 ms
Capacity read without a lock620 ms
Timetable computed per request980 ms

Illustrative comparison of a booking submission at class release. Your numbers depend on concurrency at the moment bookings open.

Configuration

What we change for a gym site

These differ from a standard WordPress site on the same plan, and each follows from selling a place in a room rather than a product on a shelf.

SettingWhat we doWhy
Capacity writesRead and decrement performed inside a lockClass release concentrates bookings into a few seconds, and without a lock the last place is sold to everyone who read the count before anyone wrote to it.
Member-area cachingBypassed on schedule, booking and account URLsA member's timetable shows what they personally booked, so a cached copy hands one member another member's schedule.
Waitlist promotionRun on platform cron rather than on page loadA cancellation two hours before a class is worth nothing if the next person is not told until somebody else happens to visit the site.
Recurring class expansionInstances generated and indexed ahead of timeExpanding a recurrence rule on every view makes the timetable, the busiest page on the site, the most expensive one to render.
Health form uploadsStored outside the publicly listable paths, served through signed linksScreening forms and injury notes are health data collected by a form nobody thought of as a medical record, and the default upload path publishes them.
Plans

Simple, transparent pricing.

Every plan includes free migration, daily backups, SSL and 24/7 support.

MonthlyYearly
Starter
For personal sites, blogs, and portfolios.
$20/mo
Billed $240 yearly · save $60
  • 1 WordPress site
  • 10 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Support tickets
Start free trial
Pro★ Most popular
For growing businesses and busy stores.
$80/mo
Billed $960 yearly · save $240
  • 5 WordPress sites
  • 50 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Priority support tickets
Start free trial
Enterprise
For agencies and high-traffic platforms.
$250/mo
Billed $3000 yearly · save $600
  • 20 WordPress sites
  • 200 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Dedicated support
Start free trial
FAQ

Questions, answered.

Two members booked the last place in a class. How?
Both read the remaining count before either wrote to it. Doing the read and the decrement inside a lock is what prevents it, and class release is exactly the moment when that race is most likely.
Can the member area be cached at all?
No, and it should not be. A member's view includes their own bookings, so caching it hands one person another person's schedule. Public class descriptions and the timetable still serve from the edge.
Why do waitlist offers go out late?
Because the promotion job is waiting for a visitor. Run on the platform's scheduler it fires at the time it is set for, which is what makes a two-hour-notice cancellation useful to somebody.
Does a year of recurring classes slow the timetable down?
Only if the instances are computed on every view. Generating and indexing them ahead of time keeps the busiest page on the site cheap to render.
Where do screening forms end up?
In upload paths that cannot be listed publicly, served through signed links. A Par-Q form is health data even though the form that collected it looked like an ordinary contact form.

Fill the classes without overselling them.

Start in minutes, or let our team move your studio site across - no card, no commitment.