AI & DevelopmentJavaScript

VanJS: The 1KB Framework That’s Replacing React in 2025

Split-screen comparison showing React's 140KB bundle versus VanJS's 1KB bundle size
The dramatic size difference between React and lightweight JavaScript frameworks like VanJS

JavaScript developers are abandoning React’s 140KB bundle for frameworks under 5KB. VanJS, the world’s smallest reactive UI framework at just 1.0kB gzipped, is 50-100 times smaller than React while maintaining full reactive capabilities – no build steps, no JSX, no virtual DOM overhead.

This isn’t an isolated experiment. It’s an industry-wide backlash against framework bloat. In 2025, expert Alex Russell bluntly stated: “Using React in 2025 makes you a bad person due to performance baggage.” Framework fatigue is pushing developers toward ultra-lightweight alternatives like VanJS, Astro, Svelte, and Solid.js that prioritize performance over features. The shift represents a fundamental rethink of web development: less JavaScript, more performance.

VanJS is 50x Smaller Than React. Here’s Why That Matters.

The performance gap between React and lightweight frameworks is absurd. VanJS delivers reactive UI capabilities in 1.0kB gzipped – compare that to React’s 140KB+ bundle with typical dependencies. Preact offers a React-compatible API at 3KB. Moreover, Astro improves First Contentful Paint by 50% compared to traditional frameworks by shipping minimal JavaScript to the browser.

Bundle size directly impacts real-world performance. On 3G networks, a 140KB React bundle can take 3-5 seconds to load. VanJS loads instantly. Consequently, this affects SEO rankings through Core Web Vitals, user experience on mobile devices, and conversion rates. According to the krausest/js-framework-benchmark, VanJS ranks among the fastest frameworks tested while being 50-100x smaller than React.

The absurdity extends beyond size. React requires build tools (Webpack, Vite), JSX compilation, separate state management libraries (Redux, MobX), and countless dependencies. In contrast, VanJS loads via CDN with zero build step. You’re comparing a 500KB production bundle with build complexity against a 1KB import that works immediately.

Framework Fatigue Finally Has a Name

Allen Pike’s 2025 framework fatigue analysis nails it: “React has evolved from a little experiment thought to boost performance into a sprawling ecosystem thought to hinder performance.” Framework fatigue isn’t developer whining – it’s a documented phenomenon with real consequences.

Developers report constant pain points: build tool configuration hell, JSX overhead for simple UIs, Redux boilerplate for basic state management, virtual DOM reconciliation that’s slower than direct manipulation, and ecosystem churn that breaks projects quarterly. The tools designed to simplify development became the problem.

Furthermore, the backlash is gaining momentum. Community discussions across Hacker News and Medium document widespread frustration. One recurring theme: most projects choose React by default without questioning if it’s necessary. That automatic choice is what Russell’s provocative “bad person” comment challenges – not React’s existence, but its thoughtless overuse.

VanJS: Reactive UI in 1.0kB

Backend developer Tao Xin created VanJS because he wanted modern framework features without abandoning vanilla JavaScript’s simplicity. The result has only 5 functions: van.tags, van.add, van.state, van.derive, and van.hydrate. The entire tutorial and API reference fits on one web page. Most developers can learn it in an hour.

Here’s a complete reactive counter in VanJS:

import van from "https://cdn.jsdelivr.net/npm/vanjs-core@1.0.0/src/van.min.js"

const {div, button} = van.tags
const count = van.state(0)

document.body.appendChild(
  div(
    button({onclick: () => ++count.val}, "Increment"),
    " Count: ", count
  )
)

This is production-ready code. No JSX compilation. No build step. No useState hooks. Just vanilla JavaScript with reactivity built in. The equivalent React implementation requires JSX, useState, build tools, and ships 140x more code.

VanJS shines for Chrome extensions, personal websites, admin dashboards, and small applications – anywhere React is overkill. With 6.2K GitHub stars and active development, it’s proven itself beyond proof-of-concept status. Real developers ship real projects with it.

It’s Not Just VanJS – The Entire Ecosystem is Going Lightweight

Industry consensus for 2025: “less JavaScript, more performance.” VanJS represents the most extreme example, but the lightweight framework movement includes mature frameworks targeting different use cases.

Astro dominates content-heavy sites by shipping HTML with minimal JavaScript hydration. Blogs, documentation, and marketing pages see dramatic speed improvements. Svelte compiles components to efficient vanilla JavaScript with minimal runtime. Solid.js uses fine-grained reactivity to update only changed DOM nodes, delivering near-native performance without virtual DOM overhead. Additionally, Preact provides React’s API in 3KB as a drop-in replacement. Alpine.js offers declarative, minimal JavaScript for enhancing server-rendered HTML.

Each framework solves specific problems without React’s baggage. Astro for content. VanJS for small apps. Solid.js for complex, performant UIs. The ecosystem finally offers real alternatives.

Should You Ditch React? Decision Criteria

Skip the dogmatism. React has legitimate use cases. Pick the right tool based on your actual needs, not what’s trendy or familiar.

Choose lightweight frameworks when you’re building small to medium projects, content-heavy sites like blogs or documentation, mobile-first applications where network speed matters, or when you can’t tolerate build complexity. They’re ideal for legacy modernization without full rewrites and rapid prototyping where React’s ecosystem is overkill.

However, stick with React when you have a large existing React codebase, your team has deep React expertise, you need extensive third-party component libraries, or enterprise requirements demand “proven” technology. Don’t rewrite working systems – but question React as the default for new projects.

Community advice from framework fatigue survivors: “Pick a stack and master it – knowing React well beats dabbling in 5 frameworks.” Nevertheless, also consider: “Choose based on actual needs, not what’s cool.” Evaluate alternatives first. Most web applications don’t need React’s complexity.

Our Take: React is Overkill for Most Projects

ByteIota’s stance is clear: for the majority of web applications, React is unnecessary complexity. If you’re building a simple dashboard, blog, marketing site, or internal tool, you’re shipping 140KB of framework without justification. Modern vanilla JavaScript with frameworks like VanJS handles 80% of use cases without the baggage.

Russell’s “bad person” comment, while provocative, highlights a real problem: React became the default choice through momentum, not merit. Build tools solved problems that created worse problems. Virtual DOM adds overhead that direct DOM manipulation avoids. We’re optimizing bundle analyzers instead of questioning why bundles are 500KB.

The lightweight movement isn’t anti-React nostalgia. It’s smart engineering. Evaluate whether you need React’s features before accepting its costs. Most projects don’t.

Key Takeaways

  • VanJS is 1.0kB gzipped, 50-100x smaller than React with full reactive capabilities
  • Framework fatigue is documented across the industry, driven by React’s complexity and build tool overhead
  • Lightweight alternatives like Astro, Svelte, Solid.js, and Preact target specific use cases with better performance
  • Choose frameworks based on project needs: lightweight for small-medium apps and content sites, React for large existing codebases
  • Most web applications don’t need React’s complexity – question the default before accepting the costs
ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to simplify complex tech concepts, breaking them down into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *