Why I’m Building My Next Side Project with Plain HTML/JS (No Framework)
At some point in modern web development, we collectively agreed that everything needed a framework. React, Vue, Svelte, Next, hydration layers, state managers—stack upon stack.
But for my next side project, I’m stripping everything back to basics: plain HTML, CSS, and JavaScript.
The problem with modern frontend stacks
Frameworks solve real problems—but they also introduce hidden complexity that most side projects don’t actually need.
- Build tools slow initial setup
- Dependency trees increase maintenance overhead
- State management becomes over-engineered
- Small apps become “mini enterprise systems”
A simple idea often gets buried under architectural decisions before it even ships.
What I actually need for a side project
Not everything deserves React Server Components or global state stores.
- Fast loading pages
- Simple interactivity
- Minimal hosting complexity
- Easy debugging
What vanilla JavaScript still does better
People underestimate how powerful the browser already is.
- No compilation step
- No dependency installation
- No framework learning curve
- Direct DOM control
<button id="btn">Click me</button>
<script>
document.getElementById("btn").addEventListener("click", () => {
alert("Simple works.");
});
</script>
This is still valid, scalable enough for many use cases, and extremely fast to ship.
The speed illusion of frameworks
Frameworks feel fast—until they don’t.
- Initial setup is quick
- But long-term complexity grows silently
- Debugging becomes layered
- Performance issues hide under abstractions
When frameworks actually make sense
This is not a “frameworks are bad” argument.
They are powerful when:
- You are building large applications
- You need reusable component systems
- You require advanced routing/state management
- You work in teams at scale
But side projects rarely start there.
My current approach
For this project, I’m intentionally limiting complexity:
- Pure HTML for structure
- CSS for styling (no utility frameworks)
- Vanilla JS for interactivity
- No build tools
What I expect to gain
- Faster iteration cycles
- Fewer moving parts
- Better understanding of fundamentals
- Easier deployment
Most importantly: fewer excuses to avoid shipping.
The uncomfortable truth
A lot of developers are not slowed down by lack of tools—they are slowed down by too many of them.
Abstraction is useful. But over-abstraction is a productivity tax.
Final insight
Going back to plain HTML and JavaScript is not regression.
It is recalibration.
Before scaling systems, you should be able to build without them.

