{"id":35687228,"url":"https://github.com/nuxt-content/nuxt-studio","last_synced_at":"2026-04-01T18:53:15.589Z","repository":{"id":322645192,"uuid":"1045165076","full_name":"nuxt-content/nuxt-studio","owner":"nuxt-content","description":"Edit your Markdown website, in production.","archived":false,"fork":false,"pushed_at":"2026-03-17T17:53:45.000Z","size":9208,"stargazers_count":646,"open_issues_count":83,"forks_count":100,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-18T07:17:17.785Z","etag":null,"topics":["nuxt","nuxt-cms","nuxt-content","nuxt-studio"],"latest_commit_sha":null,"homepage":"https://nuxt.studio","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nuxt-content.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-26T18:44:56.000Z","updated_at":"2026-03-17T21:03:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nuxt-content/nuxt-studio","commit_stats":null,"previous_names":["nuxt-content/studio","nuxt-content/nuxt-studio"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/nuxt-content/nuxt-studio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuxt-content%2Fnuxt-studio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuxt-content%2Fnuxt-studio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuxt-content%2Fnuxt-studio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuxt-content%2Fnuxt-studio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nuxt-content","download_url":"https://codeload.github.com/nuxt-content/nuxt-studio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuxt-content%2Fnuxt-studio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290969,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nuxt","nuxt-cms","nuxt-content","nuxt-studio"],"created_at":"2026-01-05T22:16:30.430Z","updated_at":"2026-04-01T18:53:15.581Z","avatar_url":"https://github.com/nuxt-content.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nuxt Studio\n\n[![npm version][npm-version-src]][npm-version-href]\n[![npm downloads][npm-downloads-src]][npm-downloads-href]\n[![License][license-src]][license-href]\n\nVisual edition in production for your [Nuxt Content](https://content.nuxt.com) website.\n\nOriginally 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.\n\nhttps://github.com/user-attachments/assets/39bf4250-e72b-45aa-bf6d-9441a38cb2d5\n\n**Current Features**\n\n- 💻 **Monaco Code Editor** - Code editor for enhanced Markdown with MDC syntax, YAML, and JSON\n- ✨ **TipTap Visual Editor** - Markdown editor with MDC component support (default mode)\n- 📝 **Form-based Editor** - Edit YAML/JSON files and frontmatter with auto-generated forms based on collection schemas\n- 🎨 **Vue Component Props Editor** - Visual interface for editing Vue component props directly in the editor\n- 🧠 **AI-powered content suggestions** - Plug and play DX with the Vercel AI Gateway, let AI help you shape your content. \n- 🔄 **Real-time Preview** - See your changes instantly on your production website\n- 🔐 **Multi-provider Authentication** - Secure OAuth-based login with GitHub, GitLab, and Google\n- 🔑 **Custom Authentication** - Utilities for implementing your own auth flow (password, SSO, LDAP)\n- 📝 **File Management** - Create, edit, delete, and rename content files (`content/` directory)\n- 🖼️ **Media Management** - Centralized media library with support for JPEG, PNG, GIF, WebP, AVIF, SVG, and more\n- 🌳 **Git Integration** - Commit changes directly from your production website and just wait your CI/CD pipeline to deploy your changes\n- 🚀 **Development Mode** - Directly edit your content files and media files in your local filesystem using the module interface\n- 🌍 **25 Languages** - Full i18n support (AR, BG, BN, CS, DE, EN, ES, FA, FI, FR, ID, IT, JA, KO, NB-NO, NL, NN-NO, PL, PT-BR, RU, TH, UA, ZH, ZH-TW)\n\n**Future Features:**\n\n- 📂 **Collections view** - View and manage your content collections in a unified interface\n- 🖼️ **Media optimization** - Optimize your media files in the editor\n- 🤖 **AI Content Assistant** — Receive smart, AI-powered suggestions to enhance your content creation flow\n- 💡 **Community-driven Features** — Have an idea? [Share your suggestions](https://github.com/nuxt-content/nuxt-studio/discussions) to shape the future of Nuxt Studio\n\n### Resources\n\n- [📖 Documentation](https://nuxt.studio/)\n- [🎮 Live Demo](https://docus.dev/admin)\n\n## Quick Setup\n\n### 1. Install\n\nInstall the module in your Nuxt application:\n\n```bash\nnpx nuxi module add nuxt-studio\n```\n\n### 2. Dev Mode\n\n🚀 **That's all you need to enable Studio locally!**\n\nRun 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.\n\n\u003e **Note**: The publish system is only available in production mode. Use your classical workflow (IDE, CLI, GitHub Desktop...) to publish your changes locally.\n\n### 3. Configure Production\n\nAdd it to your `nuxt.config.ts` and configure your repository:\n\n```ts\nexport default defineNuxtConfig({\n  modules: [\n    '@nuxt/content',\n    'nuxt-studio'\n  ],\n  \n  studio: {\n    // Studio admin route (default: '/_studio')\n    route: '/_studio',\n    \n    // Git repository configuration (owner and repo are required)\n    repository: {\n      provider: 'github', // 'github' or 'gitlab'\n      owner: 'your-username', // your GitHub/GitLab username or organization\n      repo: 'your-repo', // your repository name\n      branch: 'main', // the branch to commit to (default: main)\n    }\n  }\n})\n```\n\n### 4. Production Mode\n\nTo enable publishing directly from your production website, you need to configure:\n\n#### Git Provider\n\nConfigure where your content is stored (GitHub or GitLab repository). See the [repository configuration](#configuration-options) above.\n\n\u003e [📖 Git Providers Documentation](https://nuxt.studio/git-providers)\n\n#### Auth Provider\n\nConfigure how users authenticate to access Studio. Choose from GitHub, GitLab, Google OAuth, or custom authentication.\n\n```bash\n# Example with GitHub OAuth\nSTUDIO_GITHUB_CLIENT_ID=\u003cyour_client_id\u003e\nSTUDIO_GITHUB_CLIENT_SECRET=\u003cyour_client_secret\u003e\n```\n\n\u003e [📖 Auth Providers Documentation](https://nuxt.studio/auth-providers)\n\n#### Deployment\n\nNuxt Studio requires server-side routes for authentication. Your site must be **deployed on a platform that supports SSR** using `nuxt build`.\n\n#### Open Studio\n\nOnce deployed, navigate to your configured route (default: `/_studio`) and authenticate to start editing.\n\n## Configuration Options\n\n```ts\nexport default defineNuxtConfig({\n  studio: {\n    // Studio admin login route\n    route: '/_studio', // default\n\n    // Git repository configuration\n    repository: {\n      provider: 'github', // 'github' or 'gitlab' (default: 'github')\n      owner: 'your-username', // your GitHub/GitLab owner (required)\n      repo: 'your-repo', // your repository name (required)\n      branch: 'main', // branch to commit to (default: 'main')\n      rootDir: '', // subdirectory for monorepos (default: '')\n      private: true, // request access to private repos (default: true)\n    },\n  }\n})\n```\n\n## Contributing\n\nYou can start contributing by cloning the repository and using the playground in dev mode (set `dev` option to `true`).\n\n\u003e If you want to contribute with production mode you must create a local GitHub OAuth App (pointing to `http://localhost:3000` as callback URL).\n\n### Development Setup\n\n```bash\n# Install dependencies\npnpm install\n\n# Generate type stubs\npnpm dev:prepare\n\n# Build the app and service worker\npnpm prepack\n\n# Terminal 1: Start the playground\npnpm dev\n\n# Terminal 2: Start the app dev server\npnpm dev:app\n\n# Login at http://localhost:3000/admin\n```\n\n### Project Structure\n\n```text\nstudio/\n├── src/\n│   ├── app/           # Studio editor Vue app\n│   └── module/        # Nuxt module\n├── playground/        # Development playground\n│   ├── docus/         # Docus example\n│   └── minimal/       # Minimal example\n```\n\n### Testing\n\nYou can run a global command to test all needed check at once.\n\n```bash\n# Global verify running all needed commands\npnpm verify\n```\n\nOr run them one by one.\n\n```bash\n# Run tests\npnpm test\n\n# Run type checking\npnpm typecheck\n\n# Run linter\npnpm lint\n```\n\n## Roadmap\n\n### ✅ Phase 1 (Completed)\n\n- [x] Monaco code editor\n- [x] TipTap visual editor with MDC support (default mode)\n- [x] Editor mode switching (code ↔ visual/form)\n- [x] Form-based editor for YAML/JSON and frontmatter (schema-based)\n- [x] File operations (create, edit, delete, rename)\n- [x] Media management with visual picker\n- [x] Enhanced component slot editing\n- [x] GitHub authentication\n- [x] GitLab provider support\n- [x] Google OAuth authentication\n- [x] Development mode\n- [x] Git integration\n- [x] Real-time preview\n- [x] Internationalization (25 languages)\n- [x] Custom authentication utilities\n- [x] Vue Component props editor (visual interface)\n- [x] Span-style text formatting with toolbar button\n- [x] Binding extension for component prop editing\n\n### 🔮 Future\n\n- [ ] Advanced conflict resolution\n- [ ] Pull request generation (from a branch to the main one)\n- [x] AI-powered content suggestions\n- [ ] Media optimization\n\n## Links\n\n- 📖 [Documentation](https://content.nuxt.com/studio)\n- 🐛 [Report a Bug](https://github.com/nuxt-content/nuxt-studio/issues/new)\n- 💡 [Feature Request](https://github.com/nuxt-content/nuxt-studio/issues/new)\n- 🗨️ [Discussions](https://github.com/nuxt-content/nuxt-studio/discussions)\n- 🆇 [Twitter](https://x.com/nuxtstudio)\n- 🦋 [Bluesky](https://bsky.app/profile/nuxt.com)\n\n## License\n\nPublished under the [MIT](LICENSE) license.\n\n[npm-version-src]: https://img.shields.io/npm/v/nuxt-studio?style=flat\u0026colorA=020420\u0026colorB=00DC82\n[npm-version-href]: https://npmjs.com/package/nuxt-studio\n\n[npm-downloads-src]: https://img.shields.io/npm/dm/nuxt-studio.svg?style=flat\u0026colorA=020420\u0026colorB=00DC82\n[npm-downloads-href]: https://npm.chart.dev/nuxt-studio\n\n[license-src]: https://img.shields.io/npm/l/nuxt-studio.svg?style=flat\u0026colorA=020420\u0026colorB=00DC82\n[license-href]: https://npmjs.com/package/nuxt-studio\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuxt-content%2Fnuxt-studio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnuxt-content%2Fnuxt-studio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuxt-content%2Fnuxt-studio/lists"}