ProseMirror
ProseMirror is a toolkit for developers building rich-text editors on the web.
What ProseMirror is
ProseMirror is a toolkit for developers building rich-text editors on the web. It supports structured documents through a WYSIWYG-style interface, while allowing applications to define the content and document shape. Rather than treating a document as an HTML blob, it gives application code control over its own document data structure. Schemas and plugins let developers customize that structure and extend the editor. Four core modules handle the document model, editor state, view and transformations; additional modules offer commands, key bindings, undo history, input macros and collaboration. Multiple people can edit together in real time. The project’s examples include Markdown editing, image uploads, custom schemas, menus, code editors, footnotes and track changes. ProseMirror is open source and legally free for commercial use. It is installed with npm and can be self-hosted. It is not a ready-made editor component: implementation is modular and generally involves a bundler. The project directs questions to its forum and bug reports to its issue tracker; its GitHub repository says development has moved to Forgejo.
Good
- Free for commercial use
- Supports real-time collaborative editing
- Custom schemas define document structure
- Plugin system allows added functionality
- Works with recent major browsers and IE 11
Watch out
- Not a drop-in editor component
- Using it generally involves a bundler
- GitHub repository says it is archived
Who it suits
ProseMirror is for developers who need to build a custom web editor for structured content. It may suit teams that want control over document schemas and real-time collaboration, rather than a drop-in editor component.
Verdict
ProseMirror gives application developers control over editor structure and behavior, with collaboration and extension modules available. Expect to assemble and bundle an editor rather than install a complete component.
Plans and prices
From ProseMirror's own pricing page, checked 1 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| ProseMirror open-source library | Free | commercial use legally permitted · install with npm |
The facts
Each one read from ProseMirror's own pages, with the date it was checked.
What it does
- Account security
- The discussion site's terms make account holders responsible for maintaining account security and activity under their accounts.checked 1 Oct 2026
- Architecture
- ProseMirror is modular, pluggable, largely functional and immutable, and unopinionated.checked 1 Oct 2026
- Bundling
- ProseMirror is not distributed as one browser-loadable script, so the guide says users will probably want a bundler.checked 1 Oct 2026
- Collaboration
- It supports real-time collaborative editing, allowing multiple people to edit the same document simultaneously.checked 1 Oct 2026
- Commercial use
- The project is open source and legally free to use commercially, while asking profitable users to help fund maintenance.checked 1 Oct 2026
- Core
- The core library is small and generic and is intended as a base for different kinds of editors.checked 1 Oct 2026
- Core modules
- Four essential modules are prosemirror-model, prosemirror-state, prosemirror-view, and prosemirror-transform.checked 1 Oct 2026
- Document model
- The editor gives application code control over a custom document data structure rather than treating the document as an HTML blob.checked 1 Oct 2026
- Editing model
- It provides a WYSIWYG-style interface for documents with constrained, structured content.checked 1 Oct 2026
- Examples
- Official examples cover Markdown editing, image upload, custom schemas, menus, foldable nodes, code editors, linters, footnotes, track changes, and collaborative editing.checked 1 Oct 2026
- Extensions
- Additional modules provide editing commands, key bindings, undo history, input macros, collaborative editing, and a basic document schema.checked 1 Oct 2026
- Implementation limit
- The core library is not a drop-in component and is intended as a modular, customizable toolkit; using it generally involves a bundler.checked 1 Oct 2026
- Installation
- The official site says the easiest way to install ProseMirror is with npm.checked 1 Oct 2026
- License
- The project is released under the MIT license and the homepage says users are legally free to use it commercially.checked 1 Oct 2026
- License terms
- The ProseMirror state package is released under the MIT License, which includes warranty and liability disclaimers.checked 1 Oct 2026
- Modularity
- Its modular architecture lets applications load only the code they need and replace system parts.checked 1 Oct 2026
- Plugins
- Its plugin system enables additional functionality and custom extensions.checked 1 Oct 2026
- Purpose
- ProseMirror is a toolkit for building rich-text editors on the web.checked 1 Oct 2026
- Repository status
- The GitHub repository says it is archived and that development has moved to Forgejo at code.haverbeke.berlin.checked 1 Oct 2026
- Schemas
- Document schemas allow custom document structures without writing an editor from scratch.checked 1 Oct 2026
- Security advisory
- An official forum advisory reports a viable cross-site-scripting risk affecting some uses of DOMSerializer.checked 1 Oct 2026
- Structured documents
- It provides a WYSIWYG-style interface for constrained, structured documents and lets applications customize document shape and structure.checked 1 Oct 2026
- Support
- The project directs questions and discussion to its forum and bugs to its issue tracker, with a code of conduct for communication.checked 1 Oct 2026
Where it runs
- Browser support
- The library works on recent Firefox, Chrome, Safari, and Edge versions, as well as Internet Explorer 11.checked 1 Oct 2026
The full review of ProseMirror
ProseMirror is a JavaScript toolkit for building structured rich-text editors in the browser. It suits product teams that need application-defined document rules, custom behavior, or collaborative editing. It is a poor fit when the priority is a ready-made editor that can be dropped into a page with minimal assembly.
Overview
ProseMirror keeps the document in a custom data structure instead of treating it as an HTML blob. Its WYSIWYG-style interface can enforce constrained content through schemas, so an application can control which structures users create and how those structures are transformed. That is a meaningful advantage for workflows where valid content matters as much as free-form typing.
The cost is implementation ownership. ProseMirror is a small, generic foundation rather than a finished component, and it is not shipped as one browser-loadable script. Installation is through npm, and most projects will want a bundler. Teams get control, but they also take responsibility for assembling the editor and deciding how it should behave.
Key features
Structured model and modular architecture
Document schemas define permitted structures without requiring a team to write an editor from zero. The essential packages—prosemirror-model, prosemirror-state, prosemirror-view, and prosemirror-transform—separate document representation, state, display, and transformations. Its modular, pluggable, largely functional and immutable design lets applications load only what they need or replace individual parts. That is well suited to a bespoke editor, but it demands developers who are comfortable designing the surrounding system.
Extensions and collaboration
Separate modules add editing commands, key bindings, undo history, input macros, collaborative editing, and a basic document schema. Built-in support for multiple people editing in real time makes ProseMirror a credible base for shared documents rather than a single-user text box. The plugin system supports further functionality and custom extensions, while official examples cover Markdown, image upload, custom schemas, menus, foldable nodes, code editors, linters, footnotes, track changes, and collaboration. These examples clarify what can be built, but they do not remove the integration work.
Editing and media support
Structured content, table editing, HTML and plain-text paste, and drag-and-drop content are supported. Images are represented through URL-based image nodes, so applications retain control of how media is stored and referenced. This approach fits products with their own content model better than products that simply need a preconfigured media library.
Security and maintenance considerations
An official forum advisory reports a viable cross-site-scripting risk affecting some uses of DOMSerializer, so teams should review their serialization paths and keep security decisions in their own application. The GitHub repository is archived, with development moved to Forgejo at code.haverbeke.berlin. Questions and discussion are directed to the project forum, while bugs go to the issue tracker.
Pricing
ProseMirror open-source library — free. The library is open source under the MIT license, and commercial use is legally permitted. There is no free trial because the software is already free, and there are no seat, usage, or renewal charges. The state package's MIT terms include warranty and liability disclaimers. Profitable users are asked to help fund maintenance, but payment is not required. This is an excellent fit for teams able to provide their own engineering, deployment, and support; it gives up the convenience of a vendor-managed component.
Platforms
ProseMirror targets the web through an API and supports self-hosted deployment. JavaScript and TypeScript are supported. The library works with recent Firefox, Chrome, Safari, and Edge versions, as well as Internet Explorer 11, which may matter for legacy browser requirements.
Who it's for
Choose ProseMirror when the editor is core product infrastructure, documents must obey a custom schema, or real-time collaboration needs to fit an application-specific model. It is also a strong choice for teams that want to compose a small set of modules and retain control over deployment. Look elsewhere if your team needs a complete editor UI, a single script include, or minimal bundling and integration work.
Pros and cons
- Pros: Custom schemas enforce structured content; the document model gives application code control beyond HTML; modular packages and plugins allow precise tailoring; real-time collaboration is built in; MIT licensing permits commercial use at no software cost.
- Cons: It is not a drop-in component and generally requires a bundler; assembling behavior places a substantial engineering burden on the product team; the archived GitHub repository and reported DOMSerializer XSS risk require attentive maintenance and security review.
Alternatives
For a visual editor with a freemium model and Android, iOS, self-hosted, and web platforms, consider AiEditor. CKEditor 5 is the better direction when a freemium product with a free trial and packaged Essential plan suits your deployment. Choose Editor.js for a free, open-source option identified with CodeX, or MDXEditor when a web-based React component for authoring Markdown is the requirement. Tiptap offers an open-source MIT core alongside paid plans, while am-editor is a free MIT-licensed self-hosted/web library. BlockNote is another freemium self-hosted/web option, and ContentTools is a free, MIT-licensed JavaScript library for HTML editing.
Verdict
ProseMirror is recommended for developers building a structured, extensible web editor whose data model and behavior must belong to the application. Its strongest reason to choose it is deep control, including schemas and collaborative editing, at no software cost. Look elsewhere when a finished editor, managed interface, or lower implementation overhead matters more than that control.
Alternatives to ProseMirror
- 1
AiEditor
Free planOpen sourceAndroidiOSWebAPI8.3$5,000 one-time - 2
Editor.js
Free planOpen sourceAndroidiOSWebAPI7.7Free plan - 3

CKEditor 5
Free planAndroidiOSWebAPI7.3From $160 a month - 4
Froala Editor
AndroidiOSWebSelf-hosted7.1From $60 a month - 5

Tiptap
Free planWebAPISelf-hosted6.7From $49 a month - 6

Plate
Free planWebSelf-hosted6.6€299 one-time
