[ Case study ]
Enrollment days for each cohort crashed the academy's site — the host scaled CPU, not concurrency, and launch-day email drove thousands of simultaneous readers to a WordPress install with a heavy page builder; the last launch lost an estimated day of enrollments.
CLIENT a yoga-teacher training academy — FOCUS Static-first marketing surface
Representative examplesEvery case study in this library is an illustrative composite of the kind of engagement we deliver — written to show our method and standards, not to name clients.
A yoga-teacher training academy runs multi-week certification cohorts that enroll through launch windows: an email goes out, the cohort fills within days, and the rest of the year is quiet. Its site is a WordPress install with a heavy page builder attached to a membership platform that handles courses and payments. Marketing is run by the founder with a part-time assistant; there is no technical staff. Launch days are the only days the site matters commercially, and they had never once gone smoothly.
Enrollment days for each cohort crashed the academy's site — the host scaled CPU, not concurrency, and launch-day email drove thousands of simultaneous readers to a WordPress install with a heavy page builder; the last launch lost an estimated day of enrollments.
We proposed splitting the launch surface from the membership core: marketing and course pages rebuilt as statically generated Next.js routes on Vercel, with enrollment and member content staying exactly where they are on the existing platform behind their own subdomain. The reasoning: launch-day traffic is reading, not transacting — readers browse launch pages and only touch the membership island at enrollment — so the spike should hit static files at the edge while the plugin investment survives untouched. A load test replaying the real launch-email click curve would prove the path before the next cohort opened.
Just as important is what we ruled out, and why:
Launch pages were rebuilt as statically generated Next.js routes on Vercel — launch-day traffic reads static files from an edge network, not PHP from an origin.
Enrollment and member content stay on the existing platform behind their own subdomain, so the plugin investment survives and the spike hits the part that can take it.
A load test replaying the last launch's traffic pattern validated the new path before the next cohort opened.
Delivered by the systems pod — engineer over 5 weeks, with working increments reviewed with the client every week.
Obstacle
The first load test used flat simulated traffic and passed comfortably; replaying the actual launch-email click curve showed a burst profile that peaked in seconds and behaved nothing like the flat model.
Handled: We rebuilt the test around the real click curve, found the static path held but the membership subdomain's concurrency ceiling didn't, and arranged a launch-window capacity raise with the platform vendor.
Obstacle
Mid-migration, the founder's enrollment emails were already scheduled for the next cohort — a date we couldn't move, which compressed integration testing and the load rehearsal into the same two weeks.
Handled: We split the cutover: static launch pages went live first behind the old URLs, enrollment stayed on the old path until the rehearsal passed, and both were monitored through the launch.
The headline: latest cohort launch served record traffic with zero errors and enrollments up — Crashed launches → static launch pages, read from Launch-day analytics + error logs. A second check: launch-day enrollments vs the prior cohort at +24%.
Launch days changed character. The founder's assistant spent the last launch answering enrollment questions from the shared inbox instead of refreshing an error page, and the launch email went out without a paragraph of apology in case the site fell over. The membership platform reads as theirs again rather than a source of dread. And because the rest of the year costs almost nothing, nobody opens the hosting bill with the old suspicion that quiet months are overspending.
The result was read from Launch-day analytics + error logs against the pre-engagement baseline over the stated window, with a guardrail check on launch-day enrollments vs the prior cohort. Where platform-reported numbers and business outcomes differ, this record says which layer it is quoting.
What we would do differently
We would load-test with launch-email click curves, not flat traffic — the burst profile was the killer, and the first test's flat model was reassuringly wrong.
[ Related service ]
[ Related builds ]
Bot buyouts protected on-salesSubsequent on-sale days completed with bots challenged at the edge and origin load flat
Two years adrift maintained baselineSite current on a monthly cadence with verified restorable backups before recital season
[ Next step ]
Next case study