CalcSnippets Search
Web Frameworks 2 min read

Nuxt Kept Rising Because Vue Teams Wanted the Next.js Level of Leverage Without Pretending They Were Going to Switch Stacks Just Because Twitter Got Loud Again

Nuxt sits at about 60,296 GitHub stars and remains one of the strongest Vue frameworks on the internet. This guide explains what Nuxt is for, how to build a full-stack Vue app fast, and how to deploy it as static or server-rendered output.

The slightly mean version is still true: Nuxt got big because Vue teams wanted routing, SSR, data fetching, server APIs, and sane deployment without reinventing the stack every sprint.

GitHub shows Nuxt at roughly 60,296 stars, which is a strong reminder that Vue never disappeared and that serious teams still want an opinionated framework that turns components into a product platform.

What Nuxt is for

Nuxt is a full-stack Vue framework that is great for:

  1. SSR apps
  2. static sites
  3. content sites
  4. dashboards
  5. full-stack Vue products with server routes

Its modern server engine, Nitro, is one of the big reasons the framework feels stronger than “just Vue with pages.”

Start a Nuxt app

npx nuxi@latest init my-nuxt-app
cd my-nuxt-app
npm install
npm run dev

Create a page:

<template>
  <main>
    <h1>Nuxt is running</h1>
    <p>Vue with routing and server power built in.</p>
  </main>
</template>

Add an API endpoint:

// server/api/health.get.ts
export default defineEventHandler(() => {
  return { ok: true, framework: "nuxt" };
});

That is why Nuxt matters: frontend and server behavior sit in one coherent framework.

Why Vue teams keep choosing it

Nuxt removes painful glue work:

  1. page routing
  2. server rendering
  3. API endpoints
  4. static or dynamic deployment flexibility
  5. Vue ecosystem integration

It gives Vue teams a full-stack answer without forcing them into React’s worldview.

How to deploy it

Static output

npm run generate

That produces static output suitable for static hosts.

Server deployment

npm run build
npm run preview

For production, run the Nitro server output according to your platform.

Docker

FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["node", ".output/server/index.mjs"]

Then:

docker build -t my-nuxt-app .
docker run -p 3000:3000 my-nuxt-app

What it changed

Nuxt helped kill the idea that Vue apps had to choose between lightweight developer happiness and serious production architecture. Once Nitro matured, Nuxt stopped feeling like a nice Vue convenience layer and started feeling like a real deployment framework.

Sources

Keep reading

Related guides