The best open-source Tiptap rich text editor template for Vue 3 — production-ready, AI-powered, with 5 themes
Built on Tiptap 3 + Vue 3 + TypeScript + ProseMirror
🌐 Live Demo · 📚 Documentation · ✨ Features · 🤝 Contributing
⭐ Star us on GitHub — it motivates us a lot!
Looking for a Tiptap Vue 3 template? Tiptap UI Kit is an open-source, drop-in Vue 3 rich text editor component with Notion-like / Word-like themes, built-in AI writing assistance, real-time collaboration, and full TypeScript support. If you need a WYSIWYG editor for your Vue project — CMS, knowledge base, note-taking app, or document editor — this is the template to start with.
Tiptap UI Kit is a fully open-source, production-ready rich text editor UI kit that brings together the best of modern web technologies. It is the most feature-complete Tiptap + Vue 3 editor template available.
| Feature | Tiptap UI Kit | Raw Tiptap | Other Vue Editors |
|---|---|---|---|
| Ready-to-use Vue 3 component | Yes | No (headless) | Varies |
| Multiple theme presets (Notion/Word/GitHub) | 5 themes | None | 0-1 |
| Built-in AI writing assistance | Yes | No | No |
| Real-time collaboration (Yjs) | Yes | Paid add-on | Rare |
| Dark mode | Yes | DIY | Varies |
| i18n (EN/ZH-CN/ZH-TW) | Yes | No | Rare |
| TypeScript support | Full | Full | Partial |
| MIT License | Yes | Yes | Varies |
Perfect for building modern document editors, content management systems, note-taking apps, knowledge bases, or any Vue 3 application requiring rich text editing capabilities.
Typora - Elegant reading and writing
Dark Mode - Full light/dark mode support with smooth transitions
Word Mode - Professional A4 paper layout with automatic pagination
Modular Architecture - Enable only the features you need, keep bundle size small
Internationalization - Built-in support for:
English
Accessible - WCAG compliant with full keyboard navigation
Note: AI features work with any OpenAI-compatible API. Configure your own API key in the AI Settings.
Supported AI Providers: - OpenAI (GPT-4, GPT-3.5) - 阿里云通义千问 (Aliyun Qianwen) - DeepSeek - Ollama (local deployment) - Any OpenAI-compatible API
# Using npm
npm install tiptap-ui-kit
# Using pnpm (recommended)
pnpm add tiptap-ui-kit
# Using yarn
yarn add tiptap-ui-kit
Tiptap UI Kit requires the following peer dependencies:
pnpm add @tiptap/core @tiptap/pm @tiptap/starter-kit @tiptap/vue-3 vue
<template>
<TiptapProEditor
v-model="content"
:theme="theme"
:locale="locale"
/>
</template>
<script setup>
import { ref } from 'vue'
import { TiptapProEditor } from 'tiptap-ui-kit'
import 'tiptap-ui-kit/style.css'
const content = ref('
Hello Tiptap UI Kit!
')
const theme = ref('notion') // default | word | notion | github | typora
const locale = ref('en-US') // en-US | zh-CN | zh-TW
</script>
<template>
<TiptapProEditor
v-model="content"
:ai-config="{
provider: 'openai',
apiKey: 'your-api-key',
model: 'gpt-4o-mini'
}"
/>
</template>
🔒 Security Note: Never hardcode API keys in production. Use environment variables or let users configure their own keys via the AI Settings modal.
<template>
<TiptapProEditor
v-model="content"
:theme="theme"
:locale="locale"
:readonly="false"
:word-mode="true"
:dark-mode="isDark"
:show-toolbar="true"
:show-footer="true"
:placeholder="'Start writing...'"
@update:modelValue="handleUpdate"
/>
</template>
<script setup>
import { ref } from 'vue'
import { TiptapProEditor } from 'tiptap-ui-kit'
import 'tiptap-ui-kit/style.css'
const content = ref('')
const theme = ref('word')
const locale = ref('zh-CN')
const isDark = ref(false)
const handleUpdate = (newContent) => {
console.log('Content updated:', newContent)
}
</script>
Tiptap UI Kit comes with 5 professionally designed themes:
| Theme | Description | Best For |
|---|---|---|
| default | Clean and minimal design | General purpose editing |
| word | Microsoft Word-like with A4 pages | Formal documents, reports |
| notion | Modern, distraction-free | Note-taking, knowledge base |
| github | Developer-friendly markdown | Technical documentation |
| typora | Elegant reading/writing | Long-form content, blogs |
<TiptapProEditor theme="notion" />
Supported languages: en-US, zh-CN, zh-TW
<TiptapProEditor locale="zh-CN" />
Configure AI features via props or the built-in settings modal:
interface AiConfig {
provider: 'openai' | 'aliyun' | 'deepseek' | 'ollama'
apiKey: string
baseUrl?: string // Optional custom endpoint
model?: string // Optional model name
}
Full API documentation is available in the API.md file.
Tiptap UI Kit is ideal for:
If you're looking for any of the following, Tiptap UI Kit is a great fit:
# Clone the repository
git clone https://github.com/benngaihk/Tiptap-UI-Kit.git
cd Tiptap-UI-Kit
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Build library
pnpm build
# Build demo site
pnpm build:demo
# Run type checking
pnpm typecheck
# Run tests
pnpm test
src/
├── ai/ # AI features (continue writing, polish, etc.)
├── core/ # Core editor components
├── extensions/ # Tiptap extensions
├── features/ # Toolbar features (basic & advanced)
├── locales/ # Internationalization
├── themes/ # Theme presets
├── tools/ # Optional tools (collaboration, etc.)
└── ui/ # Reusable UI components
We love contributions! Whether it's bug reports, feature requests, or pull requests - all contributions are welcome.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Please read our Contributing Guide for more details.
Found a bug or have a feature request?
If you find Tiptap UI Kit useful, please consider:
您的支持是我创作的动力!Your support motivates my creation!
This project is licensed under the MIT License - see the LICENSE file for details.
TL;DR: You can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software. Free for commercial and personal use! 🎉
Built with these amazing technologies:
Special thanks to all our contributors!
Made with ❤️ by the open source community
If you like this project, please give it a ⭐!
$ claude mcp add Tiptap-UI-Kit \
-- python -m otcore.mcp_server <graph>