An honest decision guide for business owners and entrepreneurs evaluating whether their website needs a JavaScript framework or a simpler approach. When is React justified, and when is it overengineering?
If you're commissioning a website for your business, you'll hear conflicting advice. Some developers insist you need React or Next.js. Others say plain HTML is perfectly fine. And a growing number recommend middle-ground solutions like Astro that feel like frameworks but output static HTML.
There's a real industry discussion happening right now. In July 2026, Frontend Focus #750 asked the question directly: "Do We Still Need Build Tools for Frontend Dev?" Ollie Williams' feature-by-feature audit concluded that vendor prefixing and ES5 transpilation are becoming obsolete, and Sass features are largely absorbed into native CSS — but bundling and minification remain relevant. Meanwhile, React Status #483 featured Kent C. Dodds declaring that "the framework wars are over" — React won, but most business sites don't need React.
This article cuts through the noise. I've been building websites since 2005 — long before React existed — and I work with all the major frameworks today. Here's what I tell business owners who ask me whether their site needs a JavaScript framework or plain HTML.
The answer depends on one thing: what kind of site are you building? Not every website is a web application. Most business websites — even professional, high-performing ones — are fundamentally content delivery systems. They present information to visitors. That's it.
The distinction between a content site and a web application is the most important decision factor:
| Factor | Content Site (HTML) | Web App (React/Next.js) |
|---|---|---|
| Primary purpose | Present information | Enable user actions |
| Examples | Corporate site, blog, portfolio, landing page | SaaS dashboard, booking portal, admin panel, CRM |
| Interactivity | Links, forms, animations | Complex UI, drag-drop, real-time updates |
| Pages | 5–30 static pages | 1 SPA with dynamic routes |
| Build complexity | Minimal or none | Build tooling required |
| JavaScript bundle | Minimal (~0–50 KB) | Significant (~100–500 KB) |
| Maintenance | Low — no dependencies to update | Ongoing — npm updates, breaking changes |
| Development cost | Lower — faster to build | Higher — more code, more complexity |
| SEO | Excellent out of the box | Good with SSR (Next.js), but needs setup |
| Page load speed | Fastest — no JS overhead | Fast with optimization, but more bytes to download |
For the majority of business websites, plain HTML with modern CSS is not just adequate — it's better. Here's why:
A plain HTML page loads immediately. There's no JavaScript bundle to download, parse, and execute before the user sees content. No framework runtime. No virtual DOM. The browser gets HTML and renders it. This is the fastest possible experience.
Core Web Vitals — Google's ranking signals for page experience — are trivially easy to pass with a well-built HTML site. No hydration issues, no layout shifts from JavaScript injecting content, no blocking scripts. My own corporate sites built with plain HTML consistently achieve LCP under 1.5 seconds and Cumulative Layout Shift of 0.
CSS has evolved enormously. What used to require a framework or JavaScript can now be done in pure CSS:
For a deep dive on these capabilities, see my CSS Container Queries guide and Relative Color Syntax guide. The point is: modern CSS handles what once required a framework.
A plain HTML site takes less time to build and has no dependency maintenance costs. My rates: a landing page from 300 BYN (~$100), a corporate site from 4,500 BYN (~$1,500). A React/Next.js web application starts from 6,000 BYN (~$2,000) and can go up to 25,000 BYN for complex applications.
The cost difference isn't about the framework itself — it's about the additional complexity: build tooling, routing, state management, API integration, testing infrastructure, and ongoing dependency updates. If you don't need those, why pay for them?
A plain HTML site has zero JavaScript dependencies. That means zero npm packages to audit, zero supply chain risks, zero breaking updates. The npm ecosystem has seen increasingly sophisticated supply chain attacks — see my analysis of the 2026 npm Mini Shai-Hulud attack — and every framework dependency you add is another potential entry point.
A well-architected plain HTML site can run for years with minimal changes. A React site that's not actively maintained will accumulate security vulnerabilities in its dependency tree within months.
Frameworks exist for a reason. For certain types of projects, they're not just beneficial — they're necessary. Here's when React, Next.js, or Vue are the right choice:
If your project involves complex state management, real-time data, user accounts, multi-step forms, or a dashboard — you need a framework. A SaaS platform, booking portal, admin panel, or interactive tool benefits enormously from React's component model, state management, and ecosystem.
For these projects, I typically recommend React with Next.js (for SSR/SEO) or Vue with Nuxt (for faster development). The additional complexity is justified because you're building something that genuinely needs it.
If you know from the start that you'll need an iOS and Android app alongside your website, React is the strategic choice. React Native shares the same component model and ecosystem as React for web. You can share business logic, state management, and even significant portions of your UI code between web and mobile.
This is one of the few scenarios where React's ecosystem advantage is decisive. For a deeper comparison of React vs its alternatives, see my React vs Vue vs Angular comparison and my React vs Next.js guide.
Think drag-and-drop interfaces, real-time collaborative editing, interactive data visualizations, or complex form wizards. These benefit from React's declarative approach to UI — you describe what the UI should look like for a given state, and React handles the updates.
That said, many interactions that used to require React can now be done with native Web APIs. The bar for "complex enough to need React" has risen as the platform has matured.
For enterprise applications developed by multiple developers over years, framework conventions enforce consistency. Angular excels here with its opinionated structure. React with Next.js also scales well — especially with the React 19 Server Components architecture. For a detailed look at what React 19 brings, see my React Compiler guide and Next.js 16.3 preview.
Not everything is binary. A growing category of tools bridges the gap between plain HTML and full JavaScript frameworks. The most notable is Astro.
Astro lets you use components from React, Vue, or Svelte but renders them to static HTML at build time — sending zero JavaScript to the browser by default. Interactive components become "islands" that load their JavaScript only when they become visible on the page.
This is an excellent middle ground: you get the developer experience of component-based development with the performance of static HTML. For content-driven business sites, Astro delivers fast pages, excellent SEO, and the flexibility to add interactivity where needed. Read my Astro 6.4 guide for the full details, including its new Rust-powered Markdown processor.
Here's a simple way to decide, based on your situation:
Plain HTML or Astro
Low cost, instant load, no maintenance overhead. Astro if you want components without JavaScript.
Astro or React/Next.js
Astro for simple catalogs. React/Next.js for complex shopping experiences with real-time inventory.
React/Next.js or Vue/Nuxt
Framework required. React for the largest ecosystem; Vue for faster initial development.
React or Angular
Structure matters. Angular for opinionated consistency; React + Next.js for flexibility at scale.
Most business websites don't need React. If your site is primarily about presenting content — articles, services, portfolio, company info — plain HTML or Astro will serve you better. You'll get faster load times, lower development costs, and simpler maintenance. JavaScript frameworks are powerful tools, but they're tools for building applications, not websites. Choose the right tool for the job — not the most popular one.
Choosing between plain HTML and a JavaScript framework shouldn't be stressful. The right answer depends on your specific business goals, timeline, and budget. I've built projects with both approaches — from simple landing pages to complex SaaS platforms — and I can help you make the right call without upselling you into technology you don't need.
I'm a full-stack web developer with 20+ years of experience working in both plain HTML/CSS/JS and modern frameworks (React, Next.js, Vue, Angular). Based in Minsk and working with clients worldwide, let's discuss your project.
Tell me about your site — I'll recommend the best approach and provide a preliminary estimate. Free of charge.