The JavaScript Site Generator Review, 2023
It’s time again for every framework author’s favorite: The JavaScript Site Generator Review, February 2023 edition.
Here is the list of site generators reviewed in alphabetical order:
- Astro
2.0.15 - Eleventy
2.0.0 - Enhance
1.4.6(added 27 February 2023) - Gatsby
5.7.0 - Next.js
13.2.1 - Nuxt
3.2.2 - Remix
1.13.0 - SvelteKit
1.8.3
Each example site was created using a fresh run of the Quick Start or Getting Started tutorial on each respective generator’s web site.
Previous Reviews
- Next.js v13 review—October 2022
- Who Pays for Web Frameworks?—Last updated October 2022
- Markdown benchmark and
npm installBenchmark—July 2022 - Remix v1.5.1 review—June 2022
- Next.js review—December 2021
npm install Times
Times shown are in seconds. Lower is better.
Expand to show table of results
| Framework | npm install Time |
|---|---|
Astro 2.0.15 |
12.52 |
Eleventy 2.0.0 |
5.81 |
Enhance 1.4.6 |
29.71 |
Gatsby 5.7.0 |
43.36 |
Next.js 13.2.1 |
3.72 |
Nuxt 3.2.2 |
14.77 |
Remix 1.13.0 |
40.14 |
SvelteKit 1.8.3 |
6.78 |
Notes:
- Each tool was installed five times and the average of those five runs is shown above.
npm cache clean --forcewas used to clean the cache before each install.- npm auditing was enabled for these tests.
- Next bundles all of its dependencies (save for
reactandreact-dom) and as such bypasses for-free minor dependency releases and most of the auditing functionality provided by npm.
Client JavaScript Baseline
Weights shown are in kilobytes of uncompressed resource size (not transfer size).
Expand to show table of results
| Framework | Client JavaScript Baseline (kB) |
|---|---|
Astro 2.0.15 |
0 |
Eleventy 2.0.0 |
0 |
Enhance 1.4.6 |
0 |
Gatsby 5.7.0 |
210 |
Next.js 13.2.1 |
248 |
Nuxt 3.2.2 |
191 |
Remix 1.13.0 |
228 |
SvelteKit 1.8.3 |
53 |
node_modules Weight
Weights shown are in megabytes.
Expand to show table of results
| Framework | node_modules Weight (MB) |
|---|---|
Astro 2.0.15 |
169 |
Eleventy 2.0.0 |
34 |
Enhance 1.4.6 |
210 |
Gatsby 5.7.0 |
583 |
Next.js 13.2.1 |
158 |
Nuxt 3.2.2 |
164 |
Remix 1.13.0 |
497 |
SvelteKit 1.8.3 |
111 |
npm Auditing
Some frameworks use create-* packages (sometimes with npm init) and include a step that helpfully installs your npm dependencies for you. However, some of these tools also hide npm auditing results (including those about high severity security vulnerabilities).
These tools hide npm audit reports:
- Astro ⚠️
- Gatsby ⚠️
- Next ⚠️ (via bundling its dependencies)
These tools show standard npm audit reports during project creation:
- Eleventy ✅
- Enhance ✅
- Nuxt ✅
- Remix ✅
- SvelteKit ✅
Telemetry
Telemetry is the practice of collecting anonymous data on usage of the tool. Some tools have this enabled (opt-in) by default and require an opt-out. This isn’t necessarily bad but some folks are very surprised by this default (and education here is important as this default may not comply with your organization’s security policies).
These tools require you to opt-out of Telemetry:
- Astro ⚠️
- Next.js ⚠️
- Gatsby ⚠️
Has Telemetry but it prompts you to ask:
- Nuxt (see additional nuance below)
No known Telemetry or data collection:
- Eleventy ✅
- Enhance ✅
- Remix ✅
- SvelteKit ✅
February 28, 2023 this note was updated with more accurate information on Nuxt with help from Nuxt maintainers.
Notably and delightfully, Nuxt prompts to ask if you want to participate in Telemetry when you first run the development server. This is a global preference and you will only be prompted once; it applies to all Nuxt projects on your machine (stored in a ~/.nuxtrc file).
This prompt is still technically opt-out when using the development server. The default answer to the prompt is Yes, to participate in telemetry. But the prompt does not execute on deployment servers and CI pipelines, so it’s actually opt-in in those contexts. To me this seems like a well-executed middle ground.
Feedback
Let me know if you have feedback—I’d also welcome recommendations on aspects of these tools that you’d like to see reviewed for next time!


