CRM & booking platform
Serenity: booking and operations for service businesses
Serenity is the CRM and booking platform I built because off-the-shelf options were too expensive, too generic, and too dumb about routing. It runs Vent Busters, my dryer vent cleaning business in the Triad, day to day: online booking, quoting, scheduling, AI phone intake, and the infrastructure behind all of it. 15,000+ dryer vents handled, 600+ five-star reviews, 2,000+ online bookings in the last seven months.
Next.js / Postgres / Redis / Retell / Astro embed / Caddy / Infisical
Why Serenity exists
Most service software is built around the office screen. That is not where the hard parts happen.
The hard parts are the customer who has been waiting days for a working dryer, the technician trying to stay on route, the schedule that changes because of weather, the property manager with multiple addresses, and the caller who needs an answer after hours.
A service business is a network before it is a website. Customers, phones, forms, trucks, routes, invoices, reminders, reviews, and follow-ups all have to pass information without someone retyping everything. Serenity grew out of fixing that, first for Vent Busters, now as a multi-tenant platform for other service businesses.
Online booking that understands the route
Intelligent online booking was one of the biggest gaps that pushed me to build Serenity.
Most platforms treat online booking like a calendar drop box. A customer picks a slot, the job lands on the schedule, and the office deals with the mess later. Calls outside the service area. Routes stretched across counties. Technicians losing hours because the software accepted a job without knowing where it fits.
That bothered me because I had already lived pieces of this around 2004 running appliance service operations in New York. Zip code territories, tight routes, pipeline scheduling. Not nice-to-haves. That was how you kept technicians productive in a dense city.
Serenity looks at technician territories, zip codes, existing route density, and piped availability before it shows the customer where to book. It does not just ask what time is open. It asks where we are already going, who covers that area, and which days make sense on the route.
If Vent Busters is already two minutes down the road next Tuesday, the booking flow can guide the customer toward that day, qualify the job, quote it, and offer a discount for choosing the preferred route day. The customer still feels like they are picking an appointment. What they do not see is the schedule protecting itself.


Quoting that leads into the schedule
Online booking also handles qualification and quoting. The flow can identify the service need, ask the follow-up questions staff would ask, and price the job with the same rules the office uses.
Flat rate, time and material, trip charge, per-unit pricing, packages, commercial accounts, property management work. The pricing shape does not matter much because the booking flow is custom to the business. I am not bending the business around a generic form builder. I can design the interaction around how the service is actually sold.
On Vent Busters, a quote can go out with the full price, a material list when they ask for one (tied into inventory), and photos from the inspection. When the customer agrees, the email takes them straight to a calendar to book the installation. They do not have to log in. A temporary token already knows who they are. Availability is for that tech or the assigned team, and the system is smart enough to offer days and times that fit the schedule and the hours the job will take.
AI phone booking is live
Not every customer starts on the website. Some call. Serenity can answer those calls with an AI agent, book the services you have turned on for phone booking, and drop the job on the same schedule the web flow uses.
Callers who need a person, out of area, commercial work, or a service the agent cannot book, leave callback messages in the office. Jobs that still need an email after the call show up as follow-ups. Phone bookings get flagged so the office can spot them without digging.
Same route rules. Same territories. Different front door.
Booking stays on the business website
That was another thing I waited years for the big platforms to get right. Clicking “schedule online” should not send a customer away from the business website to a rented form on someone else's domain.
Even when the third-party page is styled well, the customer can tell the flow changed. The domain changes. The page loads differently. The booking experience stops feeling like the business they came to hire.
Serenity gives tenants a full-page booking widget that embeds directly into their site. Vent Busters uses it on an Astro-built /book page. The widget shares Serenity booking logic and the same APIs that power the internal schedule. The website stays light, while Serenity remains the source of truth for service configuration, address autocomplete, pricing, availability, territory rules, and final job creation.
No broken handoff. No domain jump. No rented booking page.

Proof on Vent Busters
Over the last seven months, Vent Busters has taken 2,000+ online bookings through Serenity.
Those bookings came from more than one path: direct web bookings, reminder emails, promotional postcards with QR codes, quoting flows that lead into the schedule, and phone bookings that land the same way.
The business also moved away from a growing pile of SaaS subscriptions. During the COVID lockdowns, I started bringing the stack in-house because the monthly bill had crossed the line. I kept the parts I needed, rebuilt the parts that mattered, and left the bloat behind.
Built from the van, not the brochure
I have driven the van. I have dealt with the customer who needs the work done now. I have watched schedules fall apart because routes were built wrong. I have seen what happens when software treats a technician like a calendar block instead of a person crossing town with tools, weather, traffic, and a phone that keeps ringing.
That experience shows up in the product. Direct booking paths. Routing that matters. Reminders that actually fire. Integrations that do not dump the office into another tab. “Just use a CRM” was never enough for this kind of work.
Vent Busters is the business. Serenity is the system that grew out of running it.
