Key takeaways
- Next.js: SEO, conventions, marketing sites. React: internal tools, minimal overhead.
- For most new projects, Next.js is a good default.
- Choose based on SEO needs and project type.
Next.js is React with opinions. It adds routing, server rendering, and a file-based structure. When does it make sense—and when is plain React enough?
Choose Next.js when
- You need SEO—server-rendered pages rank better
- You want file-based routing and conventions
- You're building a marketing site, blog, or content-heavy app
- You want API routes in the same project
Choose React (or Vite) when
- You're building an internal tool or dashboard (SEO less critical)
- You prefer minimal framework overhead
- Your app is highly dynamic and client-heavy
- You have specific routing or build needs
The real answer
For most new projects, Next.js is a solid default. It's well-supported, has a strong ecosystem, and covers common needs. Use plain React when you have a clear reason to.
FAQs
Remix is another option with different trade-offs. Next.js has the largest ecosystem. Evaluate for your needs.
Yes. It's a significant but doable migration. Easier if you structure the React app with components that can be reused.