Back to posts

Do You Really Need a JavaScript Framework?

When a new project starts, the first question is usually: "React or Vue? Next or Nuxt? What about Svelte?”. Rarely does anyone ask: "Do we need a framework?”.

TS
Thiago Saraiva
4 min read

Javascript Frameworks

Do You Really Need a JavaScript Framework?

I need to start with an inconvenient truth:

There is no perfect JavaScript framework.

And more importantly: it's very possible that you don't need any.

The Framework Reflex

When a new project starts, the first question is usually: "React or Vue? Next or Nuxt? What about Svelte?"

Rarely does anyone ask: "Do we need a framework?"

This happens because frameworks have become the default. It's like asking "which car will you buy?" when the question should be "do you need a car or can you bike?"

When You DON'T Need a Framework

Consider if your project has:

  • Few dynamic interactions — A corporate site with a contact form doesn't need React
  • Mostly static content — Blog, documentation, landing page
  • Small team — One person can maintain Vanilla JS more easily
  • Extreme performance requirements — Frameworks add weight
  • Users with slow connections — Every KB matters

Lighter alternatives:

NeedAlternative
Basic interactivityVanilla JS, Alpine.js
Web componentsNative Web Components, Lit
Static siteAstro, 11ty (no client JS)
Simple reactivityPetite-Vue, Preact

When You DO Need a Framework

Frameworks make sense when:

  • Complex app with lots of state — Dashboards, SPAs, tools
  • Large team — Shared conventions prevent chaos
  • Reusable components — Extensive design system
  • Frequent UI updates — Lots of reactivity
  • Ecosystem — You need specific libraries

The Golden Rule

Start with the assumption that you don't need a framework. Then see how far you can get before realizing you need one.

This applies not just to JavaScript, but to CMSs, CSS frameworks, and any other tool.

The Mental Exercise

Before adding a dependency, ask:

  1. What exactly does this tool solve?
  2. What's the cost? (bundle size, complexity, lock-in)
  3. Is there a simpler solution?
  4. Does the benefit outweigh the cost?

Simplicity as an Asset

Instead of starting with a complete suite of tools and considerable page weight, consider:

"Simplicity and leanness as an asset. Don't give that asset up unless the benefits outweigh the added complexity and weight."

Every dependency added is a dependency to maintain, update, and eventually replace.

Keeping JavaScript Clean (With or Without a Framework)

Regardless of your choice, some practices improve any codebase:

1. Use Linting

ESLint is not optional. Configure rules that:

  • Force === instead of ==
  • Limit block nesting
  • Warn about unused variables
  • Ensure consistent formatting

2. Create Reusable Functions

3. Separate Logic from Presentation

4. Document Decisions

Why did you choose (or not choose) a framework? Document it:

The Current Ecosystem

If you decide you need a framework:

FrameworkWhen to use
ReactMature ecosystem, many jobs, many libs
VueSmooth learning curve, good DX, excellent docs
SvelteMaximum performance, less boilerplate
SolidFine-grained reactivity, familiar to React devs
HTMXInteractivity without writing JS
AstroContent-first sites, islands architecture

Conclusion

The question isn't "which framework to use?" but "what problem am I solving?"

If the answer is "I need a carousel and form validation", you probably don't need 150KB of JavaScript.

If the answer is "I need a complex application with shared state, routing, and dozens of interactive components", then yes, a framework makes sense.

A developer's maturity shows not in how many tools they know, but in knowing when not to use them.