Via Oliver Gilan’s The Cloud Hasn’t Been Won, the context is PaaS cloud companies:
Beating the hyperscalers on convenience and developer experience is a good idea because when it comes to those things the hyperscalers tend to be dogshit. The hyperscalers are basically APIs over physical infrastructure but most companies care more about building their product and solving customer problems than they do about infrastructure so it’s an attractive proposition if you can simplify that for them.
But this strategy is a trap for a number of reasons. Being more convenient and easy to use usually means being simple. … But the moment you want to do something outside the beaten path then the simple platform makes it extremely difficult or impossible and as a company grows bigger the likelihood that they need to do something outside the beaten path grows.
Between the backwards pricing model and the lack of functionality, platforms that focus on simplicity end up directly incentivizing their most successful customers to churn.
Also applies to any infrastructure pace layer within a tech stack: your UI library, your database, your CI/CD pipeline, how you write UI styles, etc.
Defaults kick-start momentum. As the project progresses, it’s easy to find that convenience means you’re locked the system that enabled you in the first instance. It can be hard to affect change within that system without extracting yourself from it entirely, which is costly. Easy start now, pay later.
Been thinking about this in relation to the Convention over Configuration mantra and how Tailwind’s success was built on it (sure, not as complex as PaaS but it applies). Defaults/convention/convenience is a good thing until it isn’t.
See also this post.