Skip to content
C.W.K.
Stream
Lesson 07 of 08 · published

Next.js vs Alternatives

~18 min · Remix, Astro, SvelteKit, Nuxt

Level 0Curious
0 XP0/68 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

Pick the framework against the workload

FrameworkLanguageStrengthsBest for
Next.js 16ReactSSR, SSG, ISR, RSC, streaming, Server ActionsFull-stack apps, SaaS, dashboards
Remix / React Router 7ReactSSR-first, web standards (forms, fetch)Form-heavy, e-commerce (Shopify Hydrogen)
Nuxt 4Vue 3SSR, SSG, hybrid; great DXVue teams, multi-cloud
SvelteKit 2Svelte 5Tiny bundles, runesApps where bundle size dominates
Astro 5Any (islands)Zero JS by default, content-firstDocs, blogs, content sites

Where Next.js wins outright

  • You already know React and want a full-stack framework.
  • You need ISR at CDN speed (Next + Vercel is unique here).
  • You want the largest ecosystem of integrations.
  • Enterprise apps where stability + community matter more than novelty.

Where alternatives win

  • Astro — mostly content, SEO & load speed dominate (Lighthouse 100 out of the box).
  • SvelteKit — bundle budget is the constraint.
  • Remix — form-heavy apps that benefit from web-standard navigation.
  • Nuxt — the team is Vue, not React.

What "best" usually means

Workload + team skill, not benchmark numbers. A team that knows React deeply will ship a faster app on Next.js than on Astro, even though Astro's defaults are leaner.

Choose a framework from the application's dominant workload, the team's ecosystem, the client-JavaScript budget, and the operations the team is prepared to own. Compare candidates with one representative product slice under the same data and deployment conditions. A benchmark or feature matrix cannot select a framework for you. A faster sample may omit authentication, mutations, team learning, and operational failure. Switching because a new tool looks elegant trades a known system for an unmeasured migration.

Implement the same route and interaction in the serious candidates. Measure shipped JavaScript and route behavior, but also record implementation time, debugging friction, deployment steps, and the failure modes the team must support.

Code

Same idea, three frameworks·text
Next.js (RSC):
  app/post/[slug]/page.tsx — async component, fetch directly

Remix:
  app/routes/post.$slug.tsx — loader() returns data

Astro:
  src/pages/post/[slug].astro — frontmatter fetch, zero-JS render

External links

Exercise

Pick one alternative framework. Build the same single-page (a list of posts fetched from a public API) in both Next.js and that framework. Compare bundle size, time-to-interactive, and lines of code.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.