# Next.js vs Gatsby vs create-react-app

> Compare Next.js, Gatsby, and create-react-app: how Gatsby builds static sites while Next.js server-renders dynamic apps on Node.js, and where each one fits.

Author: Flavio Copes | Published: 2019-11-06 | Canonical: https://flaviocopes.com/next-vs-gatsby-vs-cra/

[`create-react-app`](https://flaviocopes.com/react-create-react-app/) does not help you generate a server-side-rendered app easily. Anything that comes with it (SEO, speed...) is only provided by tools like [Next.js](https://flaviocopes.com/nextjs/) and [Gatsby](https://flaviocopes.com/gatsby/).

**When is Next.js better than Gatsby?**

They can both help with **server-side rendering**, but in 2 different ways.

The end result using Gatsby is a static site generator, without a server. You build the site, and then you deploy the result of the build process statically on [Netlify](https://flaviocopes.com/netlify/) or another static hosting site.

Next.js provides a backend that can server side render a response to request, allowing you to create a dynamic website, which means you will deploy it on a platform that can run [Node.js](https://flaviocopes.com/nodejs/).

Next.js _can_ generate a static site too, but I would not say it's its main use case.

If my goal was to build a static site, I'd have a hard time choosing and perhaps Gatsby has a better ecosystem of plugins, including many for blogging in particular.

Gatsby is also heavily based on [GraphQL](https://flaviocopes.com/graphql/), something you might really like or dislike depending on your opinions and needs.
