Did We Overthink Frontend?
Before the npm abyss, you could just open a file and start building.
I miss the 2000s. Not for the fashion. Not for the music. But for the sheer joy of opening a file called index.html
, writing a few tags, sprinkling in some JavaScript (read: jQuery), and watching things just work. No build steps. No “npm install” that takes 3 minutes and a small prayer. No mysterious folders named dist
or node_modules
that collectively occupy more space than my entire operating system.
Back then, CSS was both cruel and kind. Sure, floats were a nightmare. But at least you knew where the pain came from. You weren’t wrestling with layers of abstraction, you were just yelling at Internet Explorer and calling it a day.
I still remember deploying websites via FTP. You edited the file live on the server. It was cowboy coding. It was wrong. It was also... fast.
Contrast that with today. Want to build a button? Great. First, pick your framework: React, Vue, Svelte, Solid, Astro, Qwik... feeling dizzy yet? Then set up your linter, your formatter, your pre-commit hook. Configure your TypeScript paths. Resolve some cryptic Webpack error about “Cannot read property ‘undefined’ of null”. Finally, install a UI library, override all the defaults, and write ten lines of Tailwind just to get a pill-shaped button with a drop shadow.
And that button still looks different on Safari.
Modern devs love to tout “Developer Experience.” Which is ironic, because the actual experience feels more like IKEA furniture assembly — except every piece came from a different warehouse, and you’re not sure if you accidentally installed a kitchen cabinet in your login form.
We’ve optimized the hell out of everything. Everything except joy.
It’s not that the 2000s were better. They were simpler. You didn’t need a mental model for hydration or SSR or static generation strategies. You just wrote code, hit refresh, and moved on. Today, you hit refresh and wait for the build to compile while questioning your life choices.
Look, I’m not saying we throw out our modern toolchains and go back to editing HTML in Notepad. I like my hot reloads. I love TypeScript (well, most days). But maybe, just maybe, the past had something to teach us: that frictionless creation matters. That not every project needs a monorepo. That clarity beats cleverness.
So the next time you’re six hours into configuring your tsconfig.json
, ask yourself: what would the 2009 me do?
He’d probably already be done with the project.
Maybe it’s time to make frontend fun again.