The essentials
- Two separate attempts to build a subscription software product failed at the same agency, not from lack of technical execution.
- Both times, the real cause was the same: the project quietly drained leadership time and budget away from the work that actually generates revenue.
- The lesson isn’t “never try.” It’s recognizing the moment you keep going out of ego rather than evidence.
Agency SaaS has an airtight pitch, and I know because I used it on my own team twice. Recurring revenue instead of mandates that get renegotiated every year. A higher company valuation, because the market pays more for software than for services. A way out of the billable-hours ceiling every service agency eventually hits.
Both times, we built something that worked. Both times, it failed. Not because the code didn’t run.
The first attempt: a tool built for us, sold to no one
The first project came from a real internal problem: a process we redid by hand for every client, in a niche where we had deep experience. The logic seemed solid. If it saves us time, it should save other agencies, or companies doing this work in-house, time too.
The product got built. It worked. The problem showed up elsewhere: selling software requires a completely different discipline than selling a service. A B2B software sales cycle, user acquisition, support, tiered pricing, all of it demands a team and an expertise the agency never had and never really developed, because its attention kept drifting back to the client mandates that were already paying salaries.
The product eventually settled into minimal maintenance mode, never officially killed, never really pushed forward either.
The second attempt: the same mistake, wearing different clothes
You’d think the lesson had landed. The second project, in a different niche, showed the same symptoms from day one: strong internal enthusiasm, a prototype that impressed in demos, and a constant hesitation to actually invest in commercialization because it pulled resources away from existing client accounts.
The common thread between the two attempts wasn’t the product. It was the decision structure. Both projects were funded out of the agency’s leadership time and margins, never treated with the rigor of an actual product launch, with its own marketing budget, its own roadmap, its own team shielded from the day’s client emergencies. A side project funded by a primary model’s margins stays a side project, no matter how strategic it sounds in meetings.
What persisting actually costs
The direct cost of a product that never takes off is easy to calculate: development hours, marketing budget spent. The real cost is elsewhere, and it’s harder to see on an income statement.
Every hour of leadership time spent pushing a product that isn’t finding its market is an hour not spent strengthening the verticals where the agency was already winning. While part of leadership’s attention stayed locked on the software project, profitable client accounts got a little less strategic attention than they could have had. That’s never visible quarter to quarter. It’s visible over two years, in how fast the strong verticals actually grew compared to what they could have done with leadership’s full attention.
Why we kept going anyway
The honest question isn’t why agency SaaS is hard. It’s why we persisted twice despite similar warning signs from the start each time.
The answer comes down to one word: ego. However profitable the service model is, it carries a label in the industry: it isn’t seen as an “ambitious” business model. Software has the prestige. It gets covered in industry press, it tells a better story on a conference stage, it suggests a growth trajectory different from an agency billing senior time. Persisting wasn’t always a rational decision based on the numbers. It was often a decision based on what we wanted to be seen building.
That’s the most uncomfortable part of this admission: both failures weren’t execution accidents. They were decisions made while knowing, somewhere, that the signals weren’t good, but choosing to believe a little longer because the alternative (accepting that we’re an excellent service agency, full stop) felt less exciting to tell.
What we do instead now
The lesson isn’t to never build a product again. It’s to stop conflating two different things: productizing part of an existing offer, and building a separate software company that lives off its own revenue.
The first is working well right now: an audit we were already doing for every client has become a paid lead magnet on a dedicated domain, never pretending to be anything other than a lead-in for the agency’s actual business. An AI-assisted video editing service, already being used internally for employer-brand content, is turning into a package sold separately, without the cost of a classic software sales cycle because it sells to the clients we already serve.
The difference isn’t subtle once you see it: a product sold to clients you already have, using the commercial infrastructure you already have, costs a fraction of the leadership time of a product that requires convincing an entirely new market. That’s not less ambitious. It’s just honest about what the agency actually knows how to do.
How to tell you’re repeating the same mistake
There are a few reliable signals for spotting whether an internal project is following the same path as the previous two, before you’ve sunk two years into it. The first signal: nobody can name, within the first month, the first five potential customers outside the existing client base. If the answer is “we’ll build it first, then figure out who buys it,” that’s already the symptom behind the first attempt.
The second signal: the project’s budget comes from a fuzzy line somewhere between overhead and talent development spending, rather than a dedicated, approved envelope. A project with no budget line of its own also has no date by which someone has to answer for its performance. The third signal, the subtlest one: the same people already managing the most demanding client accounts are supposed to also push the project forward on the side. Splitting your best people’s attention between two different emergencies guarantees neither one gets what it actually needs.
The question that replaces the excitement
Before funding a new project out of leadership time, the question we ask now isn’t “could this work.” It’s: are we willing to give it its own budget, its own team, and its own roadmap, separate from our client emergencies, starting month one? If the answer is no, it isn’t a strategic project. It’s a leadership hobby paid for with the real business’s margins.
I tried agency SaaS twice, and both times, the failure wasn’t in the product. It was in refusing to admit, early enough, that a business model that looks great on paper doesn’t automatically become yours just because you want it to.
None of this means software is off the table forever. It means the next attempt, if there is one, gets judged by the same signals we now watch for in everything else: a real budget, a named list of buyers before a line of code is written, and a team that isn’t also expected to keep every existing client happy at the same time.