Frameworks
Frontend runs Node.js apps, so any framework with a Node dev server works. New projects start from one of these starters:
| Starter | What it is |
|---|---|
| TanStack Start | Full-stack React with type-safe routing and server functions. The default starter. |
| Next.js | The React framework with the App Router, server components and route handlers. |
| Vite + Hono | A Vite React front end with a Hono API server. |
| Astro | Content-focused sites with islands of interactivity. |
| React Router | React Router’s framework mode, with loaders and actions. |
| Express | A classic Node server, rendering pages with Nunjucks. |
Every starter uses Tailwind CSS, and the React starters include shadcn/ui components.
Import an existing project
Section titled “Import an existing project”Click Import from GitHub on your team’s dashboard to start from one of your repositories or a public repository URL. Any Node.js project works; Frontend detects the framework from its files.
Changing the framework
Section titled “Changing the framework”Frontend uses the project’s framework to run its dev server, choose its build settings when you publish, and name its public environment variables. If you change frameworks in the code, update it in Settings → Advanced → Framework. The options are Next.js, TanStack Start, Vite, Vite + Hono, Astro, React Router and Express.
Public environment variables
Section titled “Public environment variables”Variables that reach the browser use the framework’s prefix:
| Framework | Prefix |
|---|---|
| Next.js | NEXT_PUBLIC_ |
| Vite, Vite + Hono, TanStack Start, React Router | VITE_ |
| Astro | PUBLIC_ |
Integrations write their public variables with the right prefix for the project’s framework.