Back to Blog

Adding Layers to Thin Air

Updated on April 23, 2025 10:18 UTC · 49 comments · 7 views
Alright, lemme tell ya something. I've been knocking around this tech scene for, well, let's just say long enough to remember IE6 with a shudder. And I've seen trends come and go. Remember MooTools? jQuery was gonna save us all? Good times. But lately, especially in the frontend world, I'm seeing something that just... gets under my skin. It's this automatic, almost knee-jerk reaction to reach for the biggest, baddest framework you can find, even when you're building something that, frankly, is about as complex as a digital napkin.
We're talking React, Vue, Angular – fantastic tools, absolutely revolutionary for building massive, complex applications. Single-page apps that feel like desktop software? Couldn't do it like this before. But what about the humble landing page? The simple blog? A site for your buddy's pizza joint down the block? Why are we slapping a full-blown framework on *that*? It feels like... gatekeeping. Making things harder than they need to be. Adding layers to thin air.
When the Hammer Sees Only Nails
Look, I get it. Frameworks are powerful. They offer structure, components, state management, routing – the whole nine yards. When you're building something like a dashboard with real-time updates, complex user interactions, and tons of dynamic data, a framework like React is a godsend. It truly is. It solves real problems at scale.
But somewhere along the line, we started treating them like the *only* way to build anything on the web. It's like everyone got a shiny new hammer, and suddenly, every problem looks like a nail. Need a static site? Hammer. Need a simple form? Hammer. Need to display five paragraphs of text and an image? You guessed it. Hammer. And not just any hammer – a really *fancy*, really *heavy* hammer that requires a whole construction crew (build tools, bundlers, dependencies) just to lift it.
I saw a job description the other day, had me scratching my head. Entry-level frontend gig. Task? Build a basic company website. Like, Home, About, Contact. Guess what they demanded? Expert-level React. For three static pages! Get outta here. That's not just overkill; that's setting up unnecessary barriers for newcomers. Or maybe they just didn't know any better? Hard to say.
The Cost of Unnecessary Complexity
This "framework-first" mindset isn't harmless, either. It comes with baggage. For starters, there's the sheer bundle size. You're shipping a significant amount of JavaScript just to render static content. That impacts performance, especially on slower connections or less powerful devices. Your user in, say, rural Kansas on patchy Wi-Fi? They're waiting longer just to see text and pictures that could've loaded instantly with plain HTML and CSS.
Then there's the build process. Suddenly, deploying your simple site involves Webpack configs, Babel transpilation, optimizing bundles... it's a whole production. Takes time. Increases complexity. Makes debugging harder when something goes wrong. I remember working on a project in Midtown, just a simple marketing site, and the build time after adding React for *one interactive widget* ballooned to over a minute. A minute! For a tiny widget! We ended up ripping it out and doing it with vanilla JS in about an hour.
The Resume Treadmill and the Echo Chamber
So, why do people do it? Why reach for React when vanilla JS or a simple static site generator would do the trick? Part of it, let's be honest, is the resume treadmill. Job descriptions scream for framework experience. Junior devs feel pressured to learn React (or Vue, or Angular) first, sometimes *before* they truly grasp the fundamentals of JavaScript, HTML, and CSS. They learn the framework's API but don't understand the DOM, event delegation, or how the browser actually works under the hood. It's like learning to drive a Formula 1 car before you can ride a bicycle.
There's also a bit of an echo chamber effect. Everyone's talking about frameworks on Twitter, in meetups (remember those?), in tutorials. It feels like the only "real" frontend development happens within a framework. If you're just writing plain HTML, CSS, and JS, are you even a "real" developer anymore? (Spoiler: Yes. Yes, you are.)
This creates a sort of implicit gatekeeping. If you don't have framework experience, you're seen as less capable, even if the task at hand doesn't require it at all. It marginalizes developers who are perfectly skilled at building efficient, accessible, and performant websites using simpler tools. And that's just dumb. We're supposed to be problem-solvers, right? Not just framework-appliers.
Bare Metal and Bright Ideas
Here's a wild thought: most websites don't need to be single-page applications. Most websites are documents. They're meant to be read, navigated, maybe fill out a contact form. For these, the "old" ways are still incredibly effective, often *more* effective.
Plain old HTML for structure. CSS for styling. Vanilla JavaScript for sprinkles of interactivity. Need to fetch some data? The Fetch API is built into the browser. Need to update a small part of the page? DOM manipulation isn't rocket science. Here's a tiny example:
// Get a button and a paragraph
const myButton = document.getElementById('myButton');
const myParagraph = document.getElementById('myParagraph');

// Add an event listener
myButton.addEventListener('click', () => {
  // Change the text
  myParagraph.textContent = 'Hello from vanilla JS!';
});

See? Simple. Direct. No build step required. Just write the code, link it in your HTML, and it runs. It's fast, lightweight, and easy to understand. For a landing page, a portfolio, a simple blog, this is often all you need. Static site generators like Jekyll, Hugo, or Eleventy are also fantastic options. They let you write content in Markdown, use templates, and they output pure, fast, static HTML files. Minimal JS, zero runtime overhead. Beautifully simple.
Choosing the right tool for the job, that's the mark of an experienced developer, isn't it? Not just defaulting to the trendiest, most complex option available.
The Path Less Frameworked
Maybe it's time we pushed back a little. Advocated for simplicity where it makes sense. Encouraged juniors to build things with vanilla JS first to really grok the browser API. Questioned job descriptions that demand framework expertise for trivial tasks. Let's make sure we're not accidentally building walls around frontend development, making it seem more intimidating or complex than it needs to be for certain types of projects.
Frameworks are amazing tools. When you need their power, use them! But let's not forget the power and elegance of simplicity. The web was built on HTML, CSS, and JavaScript. They're still here. They're still capable. And sometimes, they're the best damn tools for the job.
The Right Tool
So, next time you start a project, just pause for a second. Take a breath. Look at what you're actually trying to build. Does it *really* need a framework? Or are you just reaching for that shiny hammer because everyone else is? Sometimes, the simplest tool is the most effective. And honestly? Building something lightweight and lightning-fast with plain old web technologies? There's a certain kind of satisfaction in that. A quiet confidence. Like you know a secret the framework crowd forgot.