Build an app with Nuxt and Bun
Bun supports Nuxt with no extra configuration. Initialize a Nuxt app with the official create-nuxt CLI.
bun create nuxt@latest my-nuxt-app┌ Welcome to Nuxt!
│
◇ Templates loaded
│
◇ Which template would you like to use?
│ minimal – Minimal starter with a single app.vue.
│
◇ Creating project in my-nuxt-app
│
◇ Downloaded minimal template
│
◇ Which package manager would you like to use?
│ bun
│
◇ Initialize git repository?
│ Yes
│
◇ Dependencies installed
│
◇ Git repository initialized
│
◇ Would you like to browse and install modules?
│ No
│
└ ✨ Nuxt project has been created with the minimal template.
╭── 👉 Next steps ─────╮
│ │
│ › cd my-nuxt-app │
│ › bun run dev │
│ │
╰──────────────────────╯To start the dev server, run bun --bun run dev from the project root. This executes the nuxt dev command defined in the "dev" script in package.json.
The nuxt CLI uses Node.js by default; passing the --bun flag forces the dev server to use the Bun runtime instead.
cd my-nuxt-app
bun --bun run dev$ nuxt dev
│
● Nuxt 4.5.2 (with Nitro 2.13.4, Vite 8.2.1 and Vue 3.5.41)
➜ Local: http://localhost:3000/
➜ Network: use --host to expose
➜ DevTools: press Shift + Alt + D in the browser (v3.4.1)
✔ Vite client built in 95ms
✔ Vite server built in 33ms
[nitro] ✔ Nuxt Nitro server built in 948ms
ℹ Vite server warmed up in 3ms
ℹ Vite client warmed up in 9msOnce the dev server starts, open http://localhost:3000 to see the app. It renders Nuxt's built-in NuxtWelcome template component.
To start developing your app, replace <NuxtWelcome /> in app/app.vue with your own UI.
For production builds, the default preset is compatible with Bun, but the Bun preset generates better optimized builds.
export default defineNuxtConfig({
nitro: {
preset: "bun",
},
});Alternatively, set the preset with an environment variable:
NITRO_PRESET=bun bun run buildSome packages provide Bun-specific exports that Nitro does not bundle correctly with the default preset. Use the Bun preset so those packages work in production builds.
After building, start the server:
bun run ./.output/server/index.mjsRefer to the Nuxt website for complete documentation.