DEV Community

Cover image for Stop building marketing sites with React, Next.js, and Angular (you're overengineering them)
Muhammad Usman
Muhammad Usman

Posted on

Stop building marketing sites with React, Next.js, and Angular (you're overengineering them)

A client asks for a website. You open VS Code, run create-next-app, wire up a component library, connect a CMS, and three weeks later ship a beautifully engineered site that loads 400KB of JS to render a hero section and a contact form.

The client's happy for about a month. Then they ask why their bounce rate is 70% and their Lighthouse score sits in the 40s. You didn't do anything wrong technically. You just answered a question nobody asked.

This happens constantly with marketing and business websites, the kind whose only job is to get someone to book a call, sign up, or buy something. Not dashboards. Not products with user accounts, permissions, real-time state. Static pages selling a service.

The default stack isn't always the right stack

React, Next.js, and Angular solve real problems: client-side state management, complex interactivity, reusable components across a large app. A marketing site has none of those problems. It has five to ten pages, a form, maybe a blog, and one job: turn a visitor into a lead.

Reach for a SPA framework by default and you inherit a hydration step, a JS runtime, a build pipeline, a bundle size, all to serve content that's mostly static text and images. Every one of those adds milliseconds to Time to Interactive. Google's own research shows bounce probability climbing sharply once load time passes 3 seconds.

This isn't a knock on the frameworks. It's a mismatch between the tool and the job.

What a marketing site actually needs

Ask what the page has to do before deciding how to build it:

  • Load fast on a mid-range phone over a mediocre connection
  • Rank in search, which means clean HTML and fast Core Web Vitals
  • Let a marketer edit copy without opening a pull request
  • Push a visitor toward one action per page, not compete with a dozen widgets

For that job, plain HTML/CSS/JS, WordPress, Webflow, or a static-first tool like Astro will usually beat a client-rendered framework on the metrics that matter to the business: load time, SEO, and how easily a non-technical person can update it after launch.

Astro is worth calling out on its own. It ships zero JS by default and only hydrates the components that actually need interactivity. You get component-based development without paying the client-side framework tax.

When React, Next.js, and Angular are the right call

This isn't "never use a framework." It's "match the tool to the job":

  • The site needs a logged-in dashboard, account area, complex state
  • There's heavy client-side interactivity: filtering, real-time updates, drag-and-drop
  • You're building a product, not a marketing page for one
  • The team already has a design system built around the framework, and switching costs more than it saves

If any of that's true, use the framework. Next.js with static generation still performs well for content-heavy sites too. The point isn't "React bad." It's "pick based on the job, not the resume line."

The part developers usually skip

Here's what actually determines whether the site works: define what it needs to do before touching the stack.

  • What's the one action you want a visitor to take?
  • How long should the page be to build trust without losing them?
  • Where does the CTA go, and how many times does it repeat?
  • What's the path from "never heard of this business" to "booked a call"?

These aren't marketing fluff questions. They're requirements for the build, the same way "does this need real-time sync" is a requirement for a chat app. Skip them and you'll ship something structurally sound that generates zero leads, because nobody built it against an objective in the first place.

A fast, well-coded site that doesn't route people toward a decision is an expensive digital brochure. The stack only matters once you know what the page is trying to do.

The short version

Before you scaffold anything, ask what the site needs to accomplish, not what you're comfortable building. Most marketing sites need speed, clean markup, easy editing: HTML/CSS/JS, WordPress, Webflow, or Astro. Save React, Next.js, and Angular for sites that need what they're actually good at: complex state, heavy interactivity, logged-in experiences.

Your job isn't proving you can build a SPA. It's shipping something that gets the business what it's paying for.

One more thing: hosting matters too

All of this falls apart on slow hosting. A lean stack on a bad server still ships a bad Time to First Byte, and that's a metric no framework choice fixes after the fact.

For client marketing sites I usually reach for Hostinger (referral link, I get credit if you sign up). It's fast without any server tuning and handles WordPress or a static Astro build the same way. That link also knocks an extra 20% off.

Top comments (1)

Collapse
 
frank_signorini profile image
Frank

Isn't using a static site generator like Next.js for marketing sites still a good idea for SEO and dynamic content updates? I'd love to hear your thoughts on when to draw the line between simplicity and functionality.