1. Home
  2. Work
  3. The Loving Rebellion

Wellness practice

The Loving Rebellion

A solo practitioner whose entire business runs on her calendar — so the booking engine was built, not rented.

Client
The Loving Rebellion
Sector
Wellness practice
Engagement
New build with two custom plugins
Live site
thelovingrebellion.org ↗
The The Loving Rebellion website, designed and built by Alec Willits

01

The brief

Jenny is a registered nurse and a certified breathwork facilitator running a solo practice out of Rexburg, Idaho. She sees clients in person locally and over Zoom anywhere else. The whole business rests on one mechanism: getting the right person into the right slot on her calendar.

Off-the-shelf scheduling offered two bad options. A monthly subscription that owns the booking data and stamps its own brand on the checkout, or a WordPress plugin that treats timezones as an afterthought. For a practitioner selling 30, 60 and 90-minute sessions across two timezones and two delivery modes, “afterthought” means a client showing up an hour early to an empty Zoom room.

The design side had its own problem. The pages needed real craft — layered type, custom marks, motion that breathes — and page builders fight that at every turn.

02

The approach

I wrote the booking engine. Thirteen PHP classes, roughly 2,150 lines: four session types, availability rules, transactional email, cancellations, and a two-way sync with her own Google Calendar. When the plugin you need doesn't exist, the honest answer is to build it, not bend the business around something that nearly fits.

The calendar sync signs its own JWTs through a Google service account, which means no OAuth consent screen, no app-verification review, and no token that quietly expires at 2am. She shares her calendar with the service account once. From then on the site reads her free/busy blocks — so a dentist appointment removes a bookable slot — writes each booking into her calendar, and deletes the event when a client cancels.

Timezones are handled once, properly. Availability rules live in the business timezone, every booking is stored canonically in UTC, and slots are rendered back in the visitor's own timezone. A client in Chicago sees Chicago times, Jenny sees Mountain, and the database never has to guess.

Fifteen pages, hand-coded. The design-heavy page bodies live in the theme as shortcodes, with each post holding only its tag. That's not a stylistic preference: WordPress runs kses on content saved through the REST API, which strips inline SVG and rewrites single-quoted attributes. Either change corrupts the surrounding block JSON and breaks the page on the next save. Moving the bodies into the theme made them immune to it. They sit on a 1,173-line design system built from her brand — 25 tokens, ten breakpoints, six animations, reduced motion respected throughout.

A second plugin emits the structured data: ProfessionalService and Person schema site-wide, with FAQPage and Service markup per page. Her RN license and breathwork certification are marked up as formal credentials and the practice is geo-tagged to Rexburg, so search engines are told in a language they parse that a credentialed practitioner serves this specific place.

The details are where booking systems actually fail. Cancel links need a second explicit click, so an email provider's link prefetcher can't quietly cancel someone's session. Spam is stopped by a honeypot and a per-IP rate limit, so real clients never see a captcha. The double-booking guard re-checks availability at the moment of booking, not just when the calendar renders. Availability endpoints send no-store headers so the host's edge cache can't serve yesterday's open slots. Transactional mail goes through authenticated SMTP so confirmations are signed by a real sending domain and don't get silently dropped.

03

The outcome

Four session types bookable around the clock against her real calendar, with no recurring scheduling fees and no third-party brand on the checkout. Pages serve in roughly 200ms end to end, with about 150ms to first byte.

Those are measurements of the build, not of the business. Booking volume, how much of it arrives outside business hours, and search visibility for the terms that matter are the figures that would actually prove this worked — and they're not in yet. Stating them before they exist would be invention.

Every claim on this page describes software behavior. A booking engine can be measured; what happens in a session is the practitioner's domain, not the developer's.

WordPress Custom plugins Google Calendar API Divi 5

Visit the live site

Want something like this?

Tell me what you're trying to build and you'll get an honest read on scope, timeline and cost — within one business day.