Vibe coding your way out of a SaaS contract
There is, I would argue, too much discussion online about the demise of smaller SaaS vendors at the hands of LLMs. A lot of these conversations go roughly along these lines:
- LLMs drive the marginal cost of code down to zero.
- It will become increasingly popular for organizations of all sizes to use LLMs to deploy tools in lieu of more conventional horizontal SaaS.
- Horizontal SaaS that does not have some sort of moat — proprietary data, network effects, or otherwise — is going to have a rough go of it.
I find this sequence of steps unconvincing, largely because I think if you went back five years most people would say that a horizontal SaaS without any sort of moat against competitors, homegrown or otherwise, was a bad business. There simply are not that many large publicly traded companies that you can credibly say have no non-software moat, which is not to say that those companies are immune so much as this argument is uninteresting. Lots of people like to talk about Typeform as an exemplar billion-dollar company that should go to zero, to which I would point out that Typeform did a very smart job of raising at the absolute top, and even before the advent of LLMs had been embroiled in layoffs and market forces.
That being said! This is intellectual deflection from my main point, which is that I did this. I vibe coded our own solution to replace a small vendor we were using, and I lived to tell the tale.
We were using a tool called Iframely, which wraps oEmbed and gives you a pleasant pre-managed API for fetching embed data. This was actually a big thing in my head way back when: for a quarter or two, a surprisingly big selling point of Buttondown was the ease with which you could inject it into oEmbed-friendly sources like Medium and Ghost, and conversely how easy it was to embed off-platform data within Buttondown — tweets, videos, that sort of thing.
oEmbed is well-supported, but the standard is pretty rough, and the idea of paying thirty bucks a month to have someone else handle it seemed like a reasonable proposition back then. Frankly, it still is now. Nothing has significantly changed about that context.
But Iframely always struck me as a vendor we should in-source eventually. The economics just never quite made sense: $600 a year translated to something like two hours of my time, and while the work wasn't hard, it wasn't that easy either. This is not, by the way, a critique of the team or the product — they monetize primarily for very large publishers, and what we were doing was basically the 101 version of their full product offering.
And so, recently emboldened, I had Claude build a replacement in thirty minutes. I set up a red/green test to make sure all of the data we parsed and munged ourselves matched Iframely's, and now that enough time has passed and no errors have emerged, we've unshipped the Iframely code path and promoted ours to prod. We're saving $600 a year and I got to remove a line from our stack page.
I don't think this is a particularly more interesting form of obsolescence than, say, when Apple Sherlocks a handful of companies by cutting off some private API access or folding functionality into macOS proper. SaaS — particularly niche and horizontal — has systemic risk, and no one should either pretend otherwise nor unnecessarily generalize into bigger-picture shifts.
When I look now through the list of vendors we use, the number of potential ones that we could in-source today but not a year ago sits at, as far as I can tell, zero. We're planning on getting rid of some, but not really for LLM-inflected reasons.