
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 them 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 subscriptions are extremely unpopular lately, and partly because I appreciate knowing how much I’m spending upfront. 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 won’t 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 had no shipping delays or manufacturing defects to address, so I had a lot of time to listen during these meetings. 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 niche 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 storage, processing, and maintenance. Unlike physical suppliers, whose job ends when they 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 an airplane, sourcing parts and labor from countless suppliers, whereas the Netscape and Myspace of yesteryear were digitally more akin to a clay pot or an axe. Why should every company have its own CDN service, auth system, and email infrastructure? 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 seek out a specialty provider with a proven product? Places like Cloudflare, Google Maps, 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, and get bogged down by the overwhelming, ever-changing details of Windows, MacOS, Android, and iOS? Your developers can specialize in React Native, which adds a layer of abstraction and effectively outsources those concerns 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. 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.