๐ก Summary
Nuxt Studio is an open-source module for real-time content editing in Nuxt applications.
๐ฏ Target Audience
๐ค AI Roast: โPowerful, but the setup might scare off the impatient.โ
Risk: Medium. Review: shell/CLI command execution; outbound network access (SSRF, data egress); API keys/tokens handling and storage; filesystem read/write scope and path traversal. Run with least privilege and audit before enabling in production.
Nuxt Studio
Visual edition in production for your Nuxt Content website.
Originally offered as a standalone premium platform, Studio has evolved into a free, open-source, and self-hostable Nuxt module. Enable your entire team to edit website content right in production.
https://github.com/user-attachments/assets/39bf4250-e72b-45aa-bf6d-9441a38cb2d5
Current Features
- ๐ป Monaco Code Editor - Code editor for enhanced Markdown with MDC syntax, YAML, and JSON
- โจ TipTap Visual Editor - Markdown editor with MDC component support (default mode)
- ๐ Form-based Editor - Edit YAML/JSON files and frontmatter with auto-generated forms based on collection schemas
- ๐จ Vue Component Props Editor - Visual interface for editing Vue component props directly in the editor
- ๐ Real-time Preview - See your changes instantly on your production website
- ๐ Multi-provider Authentication - Secure OAuth-based login with GitHub, GitLab, and Google
- ๐ Custom Authentication - Utilities for implementing your own auth flow (password, SSO, LDAP)
- ๐ File Management - Create, edit, delete, and rename content files (
content/directory) - ๐ผ๏ธ Media Management - Centralized media library with support for JPEG, PNG, GIF, WebP, AVIF, SVG, and more
- ๐ณ Git Integration - Commit changes directly from your production website and just wait your CI/CD pipeline to deploy your changes
- ๐ Development Mode - Directly edit your content files and media files in your local filesystem using the module interface
- ๐ 22 Languages - Full i18n support (AR, BG, CS, DE, EN, ES, FA, FI, FR, ID, IT, JA, KO, NB-NO, NL, NN-NO, PL, PT-BR, RU, UA, ZH, ZH-TW)
Future Features:
- ๐ Collections view - View and manage your content collections in a unified interface
- ๐ผ๏ธ Media optimization - Optimize your media files in the editor
- ๐ค AI Content Assistant โ Receive smart, AI-powered suggestions to enhance your content creation flow
- ๐ก Community-driven Features โ Have an idea? Share your suggestions to shape the future of Nuxt Studio
Resources
Quick Setup
1. Install
Install the module in your Nuxt application:
npx nuxi module add nuxt-studio
2. Dev Mode
๐ That's all you need to enable Studio locally!
Run your Nuxt app and you will see a floating button on bottom left for editing your content. Any file changes will be synchronized in real time with the file system.
Note: The publish system is only available in production mode. Use your classical workflow (IDE, CLI, GitHub Desktop...) to publish your changes locally.
3. Configure Production
Add it to your nuxt.config.ts and configure your repository:
export default defineNuxtConfig({ modules: [ '@nuxt/content', 'nuxt-studio' ], studio: { // Studio admin route (default: '/_studio') route: '/_studio', // Git repository configuration (owner and repo are required) repository: { provider: 'github', // 'github' or 'gitlab' owner: 'your-username', // your GitHub/GitLab username or organization repo: 'your-repo', // your repository name branch: 'main', // the branch to commit to (default: main) } } })
4. Production Mode
To enable publishing directly from your production website, you need to configure:
Git Provider
Configure where your content is stored (GitHub or GitLab repository). See the repository configuration above.
Auth Provider
Configure how users authenticate to access Studio. Choose from GitHub, GitLab, Google OAuth, or custom authentication.
# Example with GitHub OAuth STUDIO_GITHUB_CLIENT_ID=<your_client_id> STUDIO_GITHUB_CLIENT_SECRET=<your_client_secret>
Deployment
Nuxt Studio requires server-side routes for authentication. Your site must be deployed on a platform that supports SSR using nuxt build.
Open Studio
Once deployed, navigate to your configured route (default: /_studio) and authenticate to start editing.
Configuration Options
export default defineNuxtConfig({ studio: { // Studio admin login route route: '/_studio', // default // Git repository configuration repository: { provider: 'github', // 'github' or 'gitlab' (default: 'github') owner: 'your-username', // your GitHub/GitLab owner (required) repo: 'your-repo', // your repository name (required) branch: 'main', // branch to commit to (default: 'main') rootDir: '', // subdirectory for monorepos (default: '') private: true, // request access to private repos (default: true) }, } })
Contributing
You can start contributing by cloning the repository and using the playground in dev mode (set devย option to true).
If you want to contribute with production mode you must create a local GitHub OAuth App (pointing to
http://localhost:3000as callback URL).
Development Setup
# 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
Project Structure
studio/ โโโ src/ โ โโโ app/ # Studio editor Vue app โ โโโ module/ # Nuxt module โโโ playground/ # Development playground โ โโโ docus/ # Docus example โ โโโ minimal/ # Minimal example
Testing
You can run a global command to test all needed check at once.
# Global verify running all needed commands pnpm verify
Or run them one by one.
# Run tests pnpm test # Run type checking pnpm typecheck # Run linter pnpm lint
Roadmap
โ Phase 1 (Completed)
- [x] Monaco code editor
- [x] TipTap visual editor with MDC support (default mode)
- [x] Editor mode switching (code โ visual/form)
- [x] Form-based editor for YAML/JSON and frontmatter (schema-based)
- [x] File operations (create, edit, delete, rename)
- [x] Media management with visual picker
- [x] Enhanced component slot editing
- [x] GitHub authentication
- [x] GitLab provider support
- [x] Google OAuth authentication
- [x] Development mode
- [x] Git integration
- [x] Real-time preview
- [x] Internationalization (22 languages)
- [x] Custom authentication utilities
- [x] Vue Component props editor (visual interface)
- [x] Span-style text formatting with toolbar button
- [x] Binding extension for component prop editing
๐ฎ Future
- [ ] Advanced conflict resolution
- [ ] Pull request generation (from a branch to the main one)
- [ ] AI-powered content suggestions
- [ ] Media optimization
Links
- ๐ Documentation
- ๐ Report a Bug
- ๐ก Feature Request
- ๐จ๏ธ Discussions
- ๐ Twitter
- ๐ฆ Bluesky
License
Published under the MIT license.
Pros
- Real-time editing capabilities
- Supports multiple authentication methods
- Integrates with Git for version control
- Multi-language support
Cons
- Requires server-side rendering for production
- Setup can be complex for beginners
- Limited to Nuxt.js applications
- Potential security risks with authentication
Related Skills
pytorch
SโIt's the Swiss Army knife of deep learning, but good luck figuring out which of the 47 installation methods is the one that won't break your system.โ
agno
SโIt promises to be the Kubernetes for agents, but let's see if developers have the patience to learn yet another orchestration layer.โ
nuxt-skills
SโIt's essentially a well-organized cheat sheet that turns your AI assistant into a Nuxt framework parrot.โ
Disclaimer: This content is sourced from GitHub open source projects for display and rating purposes only.
Copyright belongs to the original author nuxt-content.
