Add the Nuxt Studio module to your project:
pnpm add nuxt-studio
npm install nuxt-studio
yarn add nuxt-studio
bun add nuxt-studio
Alternatively, use the Nuxt CLI to automatically add the module:
npx nuxi module add nuxt-studio
Add the module to your nuxt.config.ts and configure your GitHub repository:
export default defineNuxtConfig({
modules: [
'@nuxt/content',
'nuxt-studio'
],
studio: {
// Studio admin route (default: '/_studio')
route: '/_studio',
// GitHub repository configuration (owner and repo are required)
repository: {
provider: 'github', // only GitHub is currently supported
owner: 'your-username', // your GitHub username or organization
repo: 'your-repo', // your repository name
branch: 'main', // the branch to commit to (default: main)
rootDir: '' // optional: if your Nuxt app is in a subdirectory (default: '')
}
}
})
rootDir option to point to the correct location.Nuxt Studio uses GitHub OAuth for authentication.
Go to GitHub Developer Settings and click New OAuth App
Fill in the required fields:
https://yourdomain.comhttps://yourdomain.comhttp://localhost:3000After creating the OAuth app, you'll receive:
Add the GitHub OAuth credentials to your deployment platform's environment variables or in your .env file in local
STUDIO_GITHUB_CLIENT_ID=<your_github_client_id>
STUDIO_GITHUB_CLIENT_SECRET=<your_github_client_secret>
Nuxt Studio requires a server-side route for authentication.
While static generation remains supported with Nuxt hybrid rendering, your site must be deployed on a platform that supports server-side rendering (SSR) using nuxt build command.
If you want to pre-render all your pages, use the following configuration:
export default defineNuxtConfig({
nitro: {
prerender: {
// Pre-render the homepage
routes: ['/'],
// Then crawl all the links on the page
crawlLinks: true
}
}
})
After deployment, access the Studio interface by navigating to your configured route (default: /_studio):
Nuxt Studio includes an experimental development mode that enables real-time file system synchronization:
export default defineNuxtConfig({
studio: {
development: {
sync: true // Enable development mode
}
}
})
When enabled, Nuxt Studio will:
content/ directorypublic/ directory