I Didn’t Want AI to Be Good at This
Over the past few months, I’ve been begrudgingly coming around to something I didn’t expect to admit publicly: AI is getting legitimately useful at building software. Not magical. Not autonomous. Not “paste in requirements and press BUILD.” We’re far from that. But the tooling has crossed a threshold where it meaningfully lowers friction in ways I can no longer dismiss.
What surprised me most isn’t that it can generate code. It’s that the cost of context has dropped. Exploring an idea. Scaffolding a feature. Writing tests. Refactoring awkward logic. Documenting decisions. Iterating without feeling like you just signed a six-month commitment.
For someone who has spent over two decades maintaining real systems, that shift isn’t abstract.
It changes the calculus.
We’ve Been Here Before
When I first started building web applications in the early 2000s, nearly everything was custom. If your company wanted software that matched how you actually worked, you built it. That was the default.
Then SaaS matured.
Suddenly you didn’t have to maintain your own systems. You could buy something that handled seventy to eighty percent of what you needed. On paper, it was obvious. Lower upfront cost. Someone else handles upgrades. Predictable pricing. Fewer late nights worrying about infrastructure.
For many organizations, that was the right move.
But over time, something subtle happened. Companies began shaping themselves around generic tools instead of shaping tools around what made them different. The software worked… mostly. But it wasn’t built around their secret sauce. It was built for a “company like yours.”
That tradeoff made sense when custom felt heavy and risky.
It feels different now.
The Economics of Context Just Changed
I’ve built a consultancy around the idea that software is heavy. Context is fragile. Continuity takes intention. We’ve helped organizations maintain and evolve applications that other teams walked away from.
So when the cost of building drops, an uncomfortable question shows up: if rebuilding gets cheaper, what does that mean for everything we optimized around maintaining?
Recently, I replaced a small SaaS subscription we were paying about $80 per month for. It was a Slackbot that tracked birthdays and anniversaries for our team and clients. Quiet. Useful. Forgettable.
Rebuilt it in half a day.
It’s small. Focused. It does exactly one thing. The maintenance footprint is tiny. No sprawling feature roadmap. No abstraction layers for hypothetical users we’ll never have.
That constraint is the feature.
And it got me thinking about something bigger.
Build Around Your Secret Sauce
The most interesting software I’ve worked on over the years wasn’t generic. It wasn’t interchangeable. It was built around what made a particular organization different.
Their workflows.
Their judgment.
Their weird edge cases.
Their advantage.
…their secret sauce.
Recently, I’ve been building a personal project for my band. It’s a custom CRM built for a user base of… me and a few of my bandmates.
(Yes, The Mighty Missoula. Shameless, I know.)
The tool tracks relationships with other musicians in the Pacific Northwest, surfaces shows we might want to attend, and nudges us when we haven’t connected in a while. Under the hood, it ingests messy event data from APIs and scraped sites where nothing is structured the same way twice.
Band names aren’t consistent. Sometimes “The” matters. Sometimes it doesn’t. Sometimes a band in Bolivia shares a name with a group we’ve played with a few miles from home. Event data is messy because humans are messy.
That mess is not a bug.
It’s reality.
A few years ago, I would have assumed weeks of plumbing before getting anything usable. Instead, I’ve been iterating quickly on a Rails 8 app, hanging out inside some of my newer CLI workflows, refining heuristics and tightening assumptions as I go.
It isn’t perfect. There are bugs. There are mismatches. But the code being produced and then reviewed through my own workflows is better than a lot of code I’ve seen over the years.
Not the best I’ve ever seen.
But better than the code written by people who cared “just enough” to get it working and move on.
The cost of caring more is cheaper now.
And that changes what’s possible when you’re building around something that actually matters to you.
The Seventy Percent Trap
We’ve been paying for a CRM for years. Thousands per year. And if I’m honest, nobody loves using it. We scatter information across other tools anyway. Conversations live in email. Notes in docs. Context in Slack. The CRM becomes the place we update because we’re supposed to.
It covers maybe seventy percent of what we need.
But our relationships, our way of thinking about clients, our actual differentiators… they don’t live comfortably inside its abstractions.
Do we really need to keep spending that money?
Or have we been tolerating software that flattens our secret sauce because rebuilding felt too heavy?
This isn’t an argument for rewriting everything. Rebuilding generic systems just because you can is ego. Reclaiming the parts of your workflow that actually define you is strategy.
SaaS still makes sense for commoditized systems. Payroll. Accounting. Infrastructure. The boring parts that don’t differentiate you.
But when the workflow itself is your advantage… when it shapes how you think, decide, and relate… settling for seventy percent might be more expensive than it looks.
Maybe this moment isn’t about replacing everything.
Maybe it’s about selectively reclaiming the parts that make you different.