
Notion-like WYSIWYG editor with AI-powered completions and real-time collaboration in Vue & Nuxt. Built with Nuxt UI and TipTap, showcasing the powerful UEditor component with advanced editing capabilities.
/ to access quick insertion commands@mention support with user suggestions:emoji: syntaxnpm create nuxt@latest -- -t github:nuxt-ui-templates/editor
Make sure to install the dependencies:
pnpm install
This template includes AI-powered writing assistance using the Vercel AI SDK and its useCompletion composable for streaming text generation with support for multiple providers through Vercel AI Gateway.
AI Features:
⌘J, accept with TabSet your AI provider configuration in .env:
# AI Configuration via Vercel AI Gateway (unified API for all providers)AI_GATEWAY_API_KEY=<your-vercel-ai-gateway-api-key>
[!TIP] With Vercel AI Gateway, you don't need individual API keys for OpenAI, Anthropic, etc. The AI Gateway provides a unified API to access hundreds of models through a single endpoint with automatic load balancing, fallbacks, and spend monitoring.
This template uses NuxtHub Blob for image uploads, which supports multiple storage providers:
For Vercel Blob (used by default via @vercel/blob), assign a Blob Store to your project from the Vercel dashboard (Project → Storage), then set the token for local development:
BLOB_READ_WRITE_TOKEN=<your-vercel-blob-token>
For S3-compatible storage, set:
S3_ACCESS_KEY_ID=<your-access-key-id>S3_SECRET_ACCESS_KEY=<your-secret-access-key>S3_BUCKET=<your-bucket-name>S3_REGION=<your-region>
Without configuration, files are stored locally in
.data/blobduring development.
This template includes optional real-time collaboration powered by Y.js, a CRDT framework for building collaborative applications. This example uses PartyKit as the Y.js provider, but you can swap it for alternatives like Liveblocks or Tiptap Collaboration.
To enable collaboration with PartyKit:
npm create partykit@latestnpx partykit deploy
.env:NUXT_PUBLIC_PARTYKIT_HOST=your-project.username.partykit.dev
?room=your-room-name to the URL to collaborate. All users with the same room name will edit together in real-time.Without the environment variable or
?room=parameter, the editor works standalone without collaboration.
Start the development server on http://localhost:3000:
pnpm dev
Build the application for production:
pnpm build
Locally preview production build:
pnpm preview
Check out the deployment documentation for more information.


