# Build with a Nitro starter template

**Author:** Ben Sabic

---

Nitro is a TypeScript-first full-stack framework for building servers and APIs, and it deploys to Vercel with zero configuration. On Vercel, your Nitro routes become [Vercel Functions](https://vercel.com/docs/functions) running on [Fluid compute](https://vercel.com/fluid), with Incremental Static Regeneration (ISR) and Observability available with minimal configuration.

Vercel maintains a [Nitro template directory](https://vercel.com/templates/nitro) with starters from both Vercel and the community, so you can begin from a working project instead of a blank repo.

## Which Nitro template should you use?

These templates range from a minimal API to Slack and AI agent apps:

| Template                                                                                    | What it gives you                                                                                                                     |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| [Nitro Starter](https://vercel.com/templates/nitro/nitro-starter)                           | A minimal Nitro API that deploys with zero configuration. Start here if you're new to Nitro on Vercel.                                |
| [Nitro - Route Rules](https://vercel.com/templates/nitro/nitro-route-rules)                 | An example of Nitro route rules, which set per-route behavior such as caching, headers, redirects, and ISR from a single config file. |
| [Nitro - Cached HTTP handler](https://vercel.com/templates/nitro/nitro-cached-http-handler) | An HTTP handler that serves cached responses with ISR, so repeated requests skip recomputation.                                       |
| [Nitro - Plugins](https://vercel.com/templates/nitro/nitro-plugins)                         | An example of Nitro plugins, which run on server startup to extend the runtime with shared setup and lifecycle hooks.                 |
| [Slack Bolt with Nitro](https://vercel.com/templates/nitro/slack-bolt-with-nitro)           | A starting point for Slack apps built with Bolt for JavaScript (TypeScript) on Nitro.                                                 |
| [Durable iMessage AI Agent](https://vercel.com/templates/nitro/durable-imessage-ai-agent)   | A durable iMessage AI agent built with [Chat SDK](https://vercel.com/kb/chat-sdk) and Nitro.                                          |
| [Caltext](https://vercel.com/templates/hono/caltext)                                        | An iMessage calorie-tracking assistant, powered by AI SDK, Chat SDK, and more.                                                        |

If you're not sure where to begin, deploy the Nitro Starter and add features such as [route rules](https://nitro.build/docs/routing) or [plugins](https://nitro.build/docs/plugins) as your project grows.

## Deploy a Nitro template

Every Nitro template deploys to Vercel the same way. Open the template you want, select **Deploy**, and Vercel clones the repository into your Git provider, creates a project, and ships it to a live URL.

1. **Open the template**: Choose a template from the table above, then select **Deploy**.
   
2. **Connect your Git provider**: Vercel creates a new repository for the template in your GitHub, GitLab, or Bitbucket account.
   
3. **Deploy the project**: Vercel builds and deploys the template, then returns a production URL. Each later push to the repository triggers a new deployment.
   

### Run the template locally

After deploying, clone your new repository and start the development server:

`git clone your_repository_url_here cd your_project_name_here npm install npm run dev`

The development server starts on `http://localhost:3000`. Open that URL to see the template running, then edit the route handlers to make it your own.

### Start from the command line instead

To scaffold the Nitro example with [Vercel CLI](https://vercel.com/docs/cli), run:

`vercel init nitro`

This clones the Nitro boilerplate into a `nitro` directory, so you can develop locally first and deploy with `vercel` when you're ready.

## Resources and next steps

- Follow the end-to-end [How to ship a Nitro app on Vercel](https://vercel.com/kb/guide/ship-a-nitro-app-on-vercel) guide to deploy and configure your app
  
- Read the full [Nitro on Vercel documentation](https://vercel.com/docs/frameworks/backend/nitro)
  
- Configure Vercel-specific features through the [Deploy Nitro to Vercel](https://nitro.build/deploy/providers/vercel) provider docs
  
- Learn how [Vercel Functions](https://vercel.com/docs/functions) run your server code
  
- Understand pricing and scaling with [Fluid compute](https://vercel.com/docs/fluid-compute)
  
- Cache and revalidate content with [Incremental Static Regeneration](https://vercel.com/docs/incremental-static-regeneration)
  
- Explore [Nitro templates](https://vercel.com/templates/nitro) you can deploy in one step

---

[View full KB sitemap](/kb/sitemap.md)
