So the author is saying, don't buy SaaS, that's vendor lock-in. Instead just go all-in on one platform... like Cloudflare, the one (& only) platform that the SDK he writes works on. Which isn't vendor lock-in? No, wait, everything is vendor lock-in:
No matter what choice you make, it's always going to be vendor-locked in.
Switching out something, even if it's open source and self-hosted,
means that you're rewriting a lot of code.
That's not what lock-in means. Just having a vendor-specific component or integration, is not the same thing as being locked-in to a vendor or integration.
Locked-in means that switching it out for something else is either A) impossible, or B) would require an investment greater than just sticking with the existing thing.
When you write software in a loosely-coupled, highly-cohesive way, the intersection between different components is designed to not take much work to replace one component or another. The same is true of systems. If the interfaces of those components are simple, and their use is cohesive, it should not be difficult to replace a part. However, if your components are not cohesive, then it will be a huge pain in the ass to replace anything.
So, no, it's not a good idea to choose a platform because "everything is lock-in, so fuck it, i'll lock myself in even more!" As a developer, I can see the appeal, as it means less work for you. But as a business owner, this is a stupid reason to choose a solution. Choose solutions that will support the business and give it flexibility to change over time.
> But as a business owner, this is a stupid reason to choose a solution. Choose solutions that will support the business and give it flexibility to change over time.
I agree with you. If you're starting out, if your business is not profitable, don't pick SaaS. Don't take the time and pay those 5 taxes. Rather just use the platform, and if you're scalable and profitable and growing, pick some other technology that supports you in the long run.
for what its worth, I use cloudflare workers a lot and I write it in a way where my code can run on anywhere else (and heck, if you really want it, you could run the code locally using wrangler dev I suppose? )
But I guess my software can work with only some changes or I suppose even without some changes on pure node/bun/deno as well
Locked-in means that switching it out for something else is either A) impossible, or B) would require an investment greater than just sticking with the existing thing.
When you write software in a loosely-coupled, highly-cohesive way, the intersection between different components is designed to not take much work to replace one component or another. The same is true of systems. If the interfaces of those components are simple, and their use is cohesive, it should not be difficult to replace a part. However, if your components are not cohesive, then it will be a huge pain in the ass to replace anything.
So, no, it's not a good idea to choose a platform because "everything is lock-in, so fuck it, i'll lock myself in even more!" As a developer, I can see the appeal, as it means less work for you. But as a business owner, this is a stupid reason to choose a solution. Choose solutions that will support the business and give it flexibility to change over time.