What Took Breezy from $0 to $250K ARR: Owning the Manual Workflow
Nine months. $0 to $250K+ ARR. Sole Founding Engineer. The company was Breezy — a SaaS for HVAC service businesses. I owned the product, the architecture, and the keyboard. People assume the lesson from a run like that is about speed, stack choices, or hustle. It wasn’t. The thing that worked was almost embarrassingly unglamorous: we locked in on the painful manual workflows that nobody had bothered to codify, and we built those exceptionally well. Everything else followed from that one decision.

The Trap Most Vertical SaaS Falls Into
Pretty CRMs. Generic dashboards. A long shopping list of integrations. A nicer onboarding flow than the incumbent. This is the standard early-stage vertical SaaS playbook, and it’s how most of them die.
Every one of those things is commodity. Your competitor can ship a dashboard in a quarter. They can wire up Stripe and Twilio in a week. They can match your marketing site by Friday. None of it is a moat.
If your wedge is something a competitor can copy in 90 days, you don’t have a wedge. You have a feature.
The Real Moat is the Manual Workflow
Every vertical has a few specific operational rituals that the whole industry runs on a clipboard, a spreadsheet, or a whiteboard at the front desk. They’re painful. They’re embarrassing. They’ve been that way for thirty years. And the reason no software has fixed them isn’t that the engineering is hard.
It’s that the specification is hard.
The moat is the manual workflow nobody else has bothered to model correctly.
Codifying it requires sitting with the people who do it every day, watching them swear at their own process, and noticing the half-rules they apply without thinking — the exceptions, the renewals, the “well, for those customers we just do X.” Then turning that into a system that handles all of it without making the operator feel like the software got dumber than their old method.
That work is invisible from the outside. It looks like “boring CRUD.” It is not boring CRUD. It is the entire game.
The Concrete Example: Maintenance Plans
Maintenance Plans sound like a checkbox. They’re not. They’re a multi-axis state machine with money, time, and customer relationships threaded through every cell.

For an HVAC shop, a Maintenance Plan has to track, simultaneously:
- Payment. Recurring billing, one-time billing, partial payments, declines, refunds, prorations when somebody joins mid-year.
- Scheduling. Each enrolled customer is owed a specific number of visits per year — and they have to actually happen, on time, in the right season.
- Enrollment. Who is in the program right now? Who used to be? Who’s pending? Who got grandfathered in at an old price?
- Renewal. Whose plan ends this month? Who needs to be auto-renewed? Who needs a phone call? Who’s getting a price bump?
Each one is trivial alone. The combination is a state machine where one wrong cell silently rots the entire program. Shops were running this on spreadsheets and sticky notes, badly, painfully, with constant revenue leakage.
We built it well. Not “MVP well” — actually well. We rebuilt Maintenance Plans three times before it was right. Each version captured a layer of operator pain the previous version had missed: the prorations, the grandfather pricing, the renewal cliffs, the “we always do it this way for our oldest customers” rules. Every edge case the owners had developed a manual workaround for was now a first-class concept in the system. The renewals nobody had time to call were now a queue. The visits owed were now a calendar. The half-paid customer was now a row with a clear status, not a Post-it on someone’s monitor.
By month 9, customers were already managing roughly 400 active maintenance plans through Breezy. That was enough to prove this was not a side feature — it was core operational infrastructure. We signed at least one customer specifically because we modeled this workflow better than anyone else they evaluated. Later, that number grew past 2,300 maintenance plans on the platform.
That feature was the reason shops switched to us. And it’s the reason they stayed. A competitor cannot drop that in. Not because the code is exotic, but because the spec took a thousand small operator conversations and three painful rewrites to get right.
Integrations are Glue. Domain Depth is the Moat.
We did integrations — Wisetack for consumer lending, phone systems, payment processors. None of them were the moat. They were connective tissue. Wiring up a third-party API is a commodity skill. The reason those integrations mattered was that they let the codified workflows reach further into the customer’s day.
Every hour spent on a generic feature is an hour not spent deepening the specification of the painful thing only you understand. That’s the trade. Most vertical SaaS gets it backward and spends 80% of its time re-implementing what every other CRM already has, then wonders why nothing sticks.
The right ratio is the opposite. Build the painful thing exceptionally well. Glue everything else in.
Why This Goes Underbuilt
Domain pain is invisible from the outside. You can’t see it from a pitch deck or a feature comparison chart. You only see it after weeks of conversations with the people who live inside it — and even then, only if you’re willing to ignore the things they ask for and instead build the thing they don’t yet know how to ask for.
That’s the part that requires a Founding Engineer who owns product, not just code. Someone watching the actual operator, hearing the actual complaint, and deciding that the next sprint is about modeling renewal logic instead of shipping the dashboard the sales team thinks would close one more deal.
The boring features are where the moat lives. Whoever decides to lock in on those — fully, slowly, correctly — wins the vertical.
The Punch
Find the manual workflow your customers hate. The one they apologize for. The one they run on paper because no software has ever been good enough to trust. Codify it ruthlessly, deeply, with the patience to model every weird edge case.
Then everything else — the dashboards, the integrations, the polish — becomes a thin layer on top of something a competitor genuinely cannot replicate.
This is the pattern across categories. The winning systems are the ones that codify painful human workflows precisely enough that the software becomes more trustworthy than the workaround it replaces. It was true in HVAC SaaS. It is becoming true again, in a much bigger way, in AI-native products — where the moat is no longer just the manual workflow, but the operator’s mental model of how the work actually gets done, captured in software that finally earns the trust to run it.
After Breezy, I moved on to going deep in pure AI product experiences — codifying a different painful manual workflow in a completely different vertical. Different domain. Same moat. Codify the pain. Own the vertical. That’s the whole game.