undefinedCurrent Status: Alpha Testingundefined
Nuxt Studio is currently in alpha and uses the Monaco code editor for content editing. This phase focuses on testing and stabilizing core functionality:
- ✅ File operations (create, edit, delete, rename)
- ✅ Content editing with Monaco editor
- ✅ Media management and uploads
- ✅ GitHub authentication and publishing workflow
Once all file operations and GitHub publishing workflows are tested and stable, we’ll release Phase 2 (Beta) with the full visual editor for Markdown, Vue components, and medias…
Read the announcement blog post for more details.
Visual edition in production for your Nuxt Content website.
Originally offered as a standalone premium platform at https://nuxt.studio, Studio has evolved into a free, open-source, and self-hostable Nuxt module. Enable your entire team to edit website content right in production.
undefinedCurrent Features (Alpha):undefined
content/ directory)public/ directory)undefinedComing in Beta:undefined
undefinedFuture Features:undefined
undefinedNote: This alpha release provides a Monaco-based code editor. The visual WYSIWYG editor will be available in the beta release.
Install the module in your Nuxt application with one command:
npx nuxi module add nuxt-studio@alpha
Add it to your nuxt.config and configure your repository.
export default defineNuxtConfig({
modules: [
'@nuxt/content',
'nuxt-studio'
],
studio: {
// Your configuration
repository: {
provider: 'github', // default: only GitHub supported currently
owner: 'your-username', // your GitHub owner
repo: 'your-repo', // your GitHub repository name
branch: 'main',
rootDir: '' // optional: location of your content app
}
}
})
${YOUR_WEBSITE_URL}/${options.route}/auth/github (default: ${YOUR_WEBSITE_URL}/_studio/auth/github)Nuxt Studio requires environment variables for authentication and publication on your repository.
Add the previsously generated Client ID and Client Secret to your deployment environment variables.
STUDIO_GITHUB_CLIENT_ID=your_github_client_id
STUDIO_GITHUB_CLIENT_SECRET=your_github_client_secret
Configure Nuxt Studio in your nuxt.config.ts:
export default defineNuxtConfig({
modules: ['nuxt-studio'],
studio: {
// Studio admin login route
route: '/_studio', // default
// Git repository configuration (required)
repository: {
provider: 'github', // only GitHub is supported currently (default)
owner: 'your-username', // your GitHub owner
repo: 'your-repo', // your GitHub repository name
branch: 'main', // your GitHub branch
rootDir: '' // optional: root directory for
},
}
})
Nuxt Studio includes an experimental development mode that enables real-time file system synchronization:
You must setup a local GitHub OAuth App to use this feature (pointing to
http://localhost:3000as callback URL).
export default defineNuxtConfig({
studio: {
development: {
sync: true // Enable development mode
}
}
})
When enabled, Nuxt Studio will:
content/ directorypublic/ directoryYou must clone the repository and create a local GitHub OAuth App (pointing to http://localhost:3000 as callback URL).
Set your GitHub OAuth credentials in the .env file.
# Install dependencies
pnpm install
# Generate type stubs
pnpm dev:prepare
# Build the app and service worker
pnpm prepack
# Terminal 1: Start the playground
pnpm dev
# Terminal 2: Start the app dev server
pnpm dev:app
# Login at http://localhost:3000/admin
studio/
├── src/
│ ├── app/ # Studio editor Vue app
│ └── module/ # Nuxt module
├── playground/ # Development playground
│ ├── docus/ # Docus example
│ └── minimal/ # Minimal example
# Run tests
pnpm test
# Run type checking
pnpm typecheck
# Run linter
pnpm lint
Published under the MIT license.
We use cookies
We use cookies to analyze traffic and improve your experience. You can accept or reject analytics cookies.