Skip to content
✨ 100% Free & Open Source

Modern Rich Text
Editor for Vue 3

Build powerful editors with zero runtime dependencies. Supports Mentions, Merge Tags, Templates, Tables, Image Upload & Resizing, HTML Editing, TypeScript, and Native Browser APIs.

Built from scratch for the modern web. No TinyMCE, CKEditor, or Quill.

FileEditViewInsertFormatTableHelp
BIU
@{{ }}

Welcome to the most modern editor for Vue 3.

Hey @John Doe, please review the {{invoice.total}}.

Zero Dependencies
Mentions (@)
Merge Tags
Templates
MIT License
Zero Runtime Dependencies
Native Browser APIs
TypeScript
Open Source
Vue 3
Built from Scratch
No TinyMCE / CKEditor

Everything You Need.

Rich Text Formatting

Standard bold, italic, underline, strikethrough, lists, and headings with zero bloat.

Interactive Mentions (@)

Async debounced search for user mentions with session caching and AbortSignal support.

Dynamic Merge Tags

Autocomplete drop-downs and categorized slide-out drawers for data placeholders.

Consumer-defined Templates

Insert application-provided HTML snippets through a searchable modal with live preview.

Image Upload & Resize

Drag-and-drop uploads, custom server handlers, and interactive corner-handle resizing.

Table Editing

Insert and manage interactive tables natively without external heavyweight plugins.

HTML Source Editor

Toggle between WYSIWYG mode and raw HTML source code editing instantly.

Keyboard Shortcuts

Familiar productivity shortcuts out-of-the-box (Cmd+B, Cmd+I, Undo/Redo).

Zero Dependencies

Built directly on the browser's Selection, Range, and DOMParser APIs. Only Vue 3 is needed.

Fullscreen Mode

Built-in distraction-free writing mode that expands the editor to fill the entire viewport.

Type-Safe API

First-class TypeScript support with comprehensive interfaces for props, events, and configuration.

Find, Preview & Print

Search and replace document text, inspect a sanitized preview, and print only the editor content.

Responsive Editing UI

Toolbar overflow, viewport-aware menus, active command states, word counts, and constrained editor resizing.

Media & Content Tools

Safe links, video, audio, embeds, emoji, special characters, anchors, horizontal rules, and date-time.

Sanitized HTML Pipeline

Allowlisted tags, attributes, styles, URLs, embeds, mentions, and merge tags with SSR-safe initialization.

Accessible by Design

ARIA-labelled controls, keyboard-friendly menus, and clear focus states support inclusive editing workflows.

Live demo

Try the full editor

Edit the content below and explore the complete menubar, toolbar, mentions, merge tags, templates, tables, media, preview, and source tools.

Why switch?

Feature@erag/text-editor-vueTinyMCECKEditorQuillTiptap
License
100% Free (MIT)

GPL 2+ / Commercial

GPL 2+ / Commercial

BSD-3-Clause

MIT
Zero External Dependencies
Requires ProseMirror
First-party Vue 3 Component
Vue integration

Vue integration

Community wrapper

Vue integration
Mentions (@)
Premium Plugin

Premium Plugin

Third-party

Extension
Merge Tags ({{ }})
Premium Plugin

Premium Plugin

Custom Node
Configurable Template Picker
Premium Plugin

Premium Plugin
Interactive Image Resizing
Third-party

Extension
Image Drag & Drop Upload
Third-party

Custom Extension
Interactive Table Editor
Third-party

Extension
Built-in HTML Source Dialog
Image Upload + Server Delete Callback
Built in

Plugin / adapter

Upload adapter

Custom module

Extension / custom
Find, Preview, Print & Fullscreen UI
Built in

Plugin mix

Build dependent

Custom UI

Extension / custom
Emoji, Symbols, Anchors & Date-Time
Built in

Plugin mix

Plugin mix

Custom modules

Extensions
Responsive Menubar, Overflow & Status Bar
Included UI

Basic theme UI

Headless / add UI
Typed Vue Props, Events, Slots & Methods
First-party Vue 3

Vue integration

Vue integration

Community wrapper

Vue integration

Frequently Asked Questions

Is it really free for commercial projects?
Yes. @erag/text-editor-vue is 100% free and open-source under the MIT License. There are no premium tiers, no API keys, and no feature paywalls.
Does it depend on TinyMCE, CKEditor, or Quill?
No. It is built entirely from scratch specifically for Vue 3. It utilizes native browser APIs (Selection, Range, execCommand/DOMParser) which results in a significantly smaller bundle size and native performance.
How do Mentions and Merge Tags work?
Typing @ triggers an async user search dropdown, complete with debouncing and caching. Typing {{ triggers a dynamic merge tags dropdown. Both are fully native Vue components rendered over the editor canvas.
Can I upload and resize images?
Yes. The editor supports drag & drop, clipboard paste, and URL insertion. Once inserted, clicking an image reveals active corner handles for interactive resizing.
Can I use it with Laravel or Inertia.js?
Absolutely. It's heavily optimized for Laravel/Inertia workflows. You can easily pass a custom imagesUploadHandler function to handle CSRF tokens and POST images directly to your Laravel controllers.

Released under the MIT License. Copyright © Er Amit Gupta