A rich text editor template built with Nuxt UI and TipTap, showcasing the powerful UEditor component with advanced editing capabilities.
- Rich Text Editing - Full formatting support with headings, lists, blockquotes, and code blocks
- Bubble & Fixed Toolbars - Contextual toolbars that adapt to your selection
- Drag Handle - Easily reorder, duplicate, or delete content blocks
- Slash Commands - Type
/to access quick insertion commands - Image Upload - Custom image upload node with replace and delete actions
- Mentions -
@mentionsupport with user suggestions - Emoji Picker - Full GitHub emoji set with
:emoji:syntax - Text Alignment - Left, center, right, and justify alignment options
- Markdown Support - Content type set to markdown for easy serialization
- Real-time Collaboration - Optional collaborative editing powered by PartyKit
npm create nuxt@latest -- -t github:nuxt-ui-templates/editorMake sure to install the dependencies:
pnpm installThis 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:
- Create and deploy a PartyKit server following the PartyKit Quickstart:
npm create partykit@latest
npx partykit deploy- Set your PartyKit host in
.env:
NUXT_PUBLIC_PARTYKIT_HOST=your-project.username.partykit.dev- Add
?room=your-room-nameto 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 devBuild the application for production:
pnpm buildLocally preview production build:
pnpm previewCheck out the deployment documentation for more information.