A toolkit for building rich-text editors on the web

Rich content editors should, ideally, produce clean, semantically meaningful documents while still being easy for users to understand. ProseMirror tries to bridge the gap between editing explicit, unambiguous content like Markdown or XML, and classical WYSIWYG editors.

It does this by implementing a WYSIWYG-style editing interface for documents more constrained and structured than plain HTML. You can customize the shape and structure of the documents your editor creates, and tailor them to your application's needs.



ProseMirror is open source, and you are legally free to use it commercially. Yet, writing, maintaining, supporting, and setting up infrastructure for such a project takes a lot of work and energy. Therefore...

If you are using ProseMirror to make profit, there is a social expectation that you help fund its maintenance.   Start here.

ProseMirror is being developed on GitHub. Contributions are welcome.

The easiest way to install ProseMirror is with npm. Take a look at the examples to get started.

The library works on recent versions of Firefox, Chrome, Safari, and Edge, as well as on Internet Explorer 11.

Discussing the project, or asking questions, is best done on the forum. Bugs should be reported through the issue tracker. We aim to be an inclusive, welcoming community. To make that explicit, we have a code of conduct that applies to communication around the project.


Initial development of the software was crowd-funded by these 414 excellent individuals and organizations.

Ongoing development is supported by these companies: