Simplicity
I’m a simple man. I love simplicity.
And I hate when things get so complicated it hurts my mind.
Building Web Applications doesn’t need to be complicated, in most cases.
Unless you’re creating something really complicated by design.
Otherwise, introducing complexity is entirely your choice.
But developers like complexity. Introducing complexity even when it’s not needed. Maybe not needed yet, maybe to prepare an app for a future that will never exist.
Sometimes decisions are taken unconsciously, for fear of looking dumb:
"In web development, a lot of decisions are driven by the fear of looking dumb. People are worried about appearing unsophisticated and unwilling to say this is “too complicated and we should do something simpler even though it's not super sexy“" @htmx_org telling absolute truths
— flavio (@flaviocopes) October 24, 2023
Peer pressure is the ultimate evil. New developers are especially prone to thinking “seniors” will make fun of them for picking some tech stack that doesn’t look complex:
— flavio (@flaviocopes) October 12, 2022
How many times I’ve heard “this tech stack will scale” for an app that ended up never seeing the light of the day because you abandoned it after working on it for 3 months and then you lost the initial enthusiasm?
Or, building a SaaS on top of an overly complicated stack only to be stuck with 2 paying customers at $4.99/m?
The more I go on, the more I value simplicity
— flavio (@flaviocopes) October 8, 2021
It's hard because sometimes complexity is more rewarded
You do things in a simple way, you seem less.. valuable?
You do complex things and wow you're such an expert
"Teach me all those complex things"
Even if I'll never need them
If only the app stack complexity was directly correlated with the number of customers we’d get, we’d all be millionaires. But instead, it has nothing to do with it.
People use our app because they need it. If you happen to build something people need, and you are able to find customers in a way that’s sustainable, you’ll have success.
This has nothing to do with the app complexity.
Actually, it’s the opposite.
Building an app with simple technology lets you ship faster.
Shipping faster means you can get the app faster to market, test more ideas, see what works and what doesn’t.
And if something gets traction, you can work on it more.
In the context of Web Applications, these days most Web Developers are inevitably pushed towards using a SPA framework like React, Vue, Svelte, or “enter your favorite client-side framework”.
For the past 11 years I’ve been all-in on the JavaScript SPA (Single Page Application) approach, as the vast majority of frontend developers.
Don’t get me wrong: I love using an client-side rendering library like React or Svelte. It’s an interesting challenge and you can do cool stuff with it.
I mean, that’s all I’ve been doing for a decade or so. If it wasn’t fun, or useful, I would be doing something else. I started with Ember, then got into React, Vue, used Svelte, tried a lot of alternatives too over time.
But lately, I’ve been trying a new, different approach, I found it was much much simpler than what the vast majority of people talk about out there, and I decided to write about it because you might find it cool.