The Emergence of Digital Supply Chains
Over the summer, I was working on a post that called out the seemingly endless and parasitic growth of SaaS providers. I kept seeing ads for companies like Clerk, Unkey, and Posthog, and every time I saw one of these ads, I became more cynical about the entire industry. My feelings came from a seemingly rational observation: these services are very popular, very profitable, and they have managed to insert themselves at every step of the process of software creation.
All of these services have become wildly popular in spite of the fact that none of these services are strictly necessary to developers. Outsourcing has always existed, but it seems to be less of an outlier and more of the norm lately. The default assumption that a startup or a new project would make basic features like user management from scratch has been usurped, and as someone who has built numerous small- or medium-sized projects without using many 3rd-party SaaS solutions, their popularity struck me as a product of laziness and of a growing problem with greedy middlemen.
The more I thought about SaaS, one thing I noticed is that their revenue tends to come not from one-time payments, but from subscriptions that are justified by cloud hosting costs and continuous updates. This specific fact stood out to me, partly because hating subscriptions is popular, and partly because I actually appreciate owning things. So, I began to write my post. I titled it “The Middlest of Men,” and I criticized each of the sins I thought I saw in this industry.
As I got deeper into the issue, I spent more time thinking about the sins which I saw in the SaaS world, and my position softened with each paragraph:
- Subscription pricing is logical because of the second ‘S’ in “SaaS.” If companies were providing software that runs locally and would not receive updates, then a single payment might make sense. But they’re providing a service, which has associated ongoing costs to provide.
- Because startups value speed above all else, reinventing auth and content delivery only increases the risk that a competitor appears. The increasing complexity of software deliverables forces even larger organizations to rely on the work of others.
By the time I reached the conclusion section, I felt like I was left without any real complaints. Coincidentally, this occurred around the same time as I was writing firmware for an upcoming product. We were having weekly meetings where the team kept discussing supply chains and sourcing for physical goods. As a software engineer, I mostly listened. And somewhere in that listening, it clicked.
At twelve hundred words, I deleted my draft. The existence of these software “middlemen” wasn’t the issue I had originally believed it to be.
What we are witnessing is not an unprecedented era of greed from Silicon Valley startups, but rather the natural emergence of the digital analog for the more-familiar physical structure known as supply chains. Screws and circuit boards, injection molding and finishing, assembly and testing—these items and processes that produce everything from trash bins to pickup trucks—are being mimicked online. While software development has largely relied on informal, in-house tools to achieve incredible feats, increasing demand for highly reliable, highly performant, and highly available products has driven developers to specialize and outsource everything else.
One reason this analogy took me so long to see is that we think of digital goods as infinitely replicable. While this is true of pure data, the cost of SaaS is due to the fact that it’s an ongoing service, with real costs for hosting, processing, and maintenance. Unlike physical suppliers, who can hand you a part, these services promise to keep the part running. That ongoing cost makes subscription pricing rational, and it’s also what makes the supply-chain comparison stick.
The software we are building today is more akin to a Ford Model T, whereas the Netscape and Myspace of yore were digitally more akin to a clay pot or a wooden sail ship. Why should every company have its own CDN service, auth system, and email infra? Why should every regional bank have its own iOS developers? Each of these things requires loads of domain-specific knowledge to do well, so isn’t it wise to pay a specialty provider for a proven product? Places like Cloudflare, Google, and Sendgrid have already solved common software problems, and they’re offering their services to others.
The same consideration extents to frameworks: why develop different apps for each platform when your developers can specialize in React Native, which adds a layer of abstraction over the overwhelming, ever-changing details of Windows, MacOS, Android, and iOS to the team behind React Native?
The final product of modern software development can be created faster, and it can achieve a higher level of complexity in the same amount of time than ever before. And that is all thanks to these services which we have come to rely on (for better or for worse), because they are the digital equivalent of logistics, screws, and circuit boards.