Nitro logoNitro

Quick Start

Start with a fresh Nitro project or adopt it in your current Vite project.

Try Nitro online

Get a taste of Nitro in your browser using our playground.

Play with Nitro in StackBlitz

Create a Nitro project

The fastest way to create a Nitro application is using the create-nitro-app.

Make sure to have installed the latest LTS version of either Node.js, Bun, or Deno.
npx create-nitro-app
Preview

Follow the instructions from the CLI and you will be ready to start your development server.

Add to a Vite project

You can add Nitro to any existing Vite project to get API routes, server-side rendering, and more.

Install nitro and vite

npm i nitro vite

Add Nitro plugin to Vite

Add the Nitro plugin to your vite.config.ts:

vite.config.ts
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";

export default defineConfig({
  plugins: [
    nitro()
  ],
});

Configure Nitro

Create a nitro.config.ts to configure the server directory:

nitro.config.ts
import { defineNitroConfig } from "nitro/config";

export default defineNitroConfig({
  serverDir: "./server",
});

The serverDir option tells Nitro where to look for your server routes. In this example, all routes will be inside the server/ directory.

Create an API route

Create your first API route at server/api/test.ts:

server/api/test.ts
import { defineHandler } from "nitro/h3";

export default defineHandler(() => {
  return { message: "Hello Nitro!" };
});

The file path maps directly to the route URL — server/api/test.ts becomes /api/test.

As an alternative to filesystem routing, you can declare routes programmatically using the routes config option. See Programmatic route handlers for more details.
You can return strings, JSON objects, Response instances, or readable streams from your handlers. See Routing for more about dynamic routes, methods, and middleware.

Start the development server

npm run dev -- --open

Your API route is now accessible at http://localhost:3000/api/test