ProseMirror is an in-browser semantic rich text editor component. This is what it might look like:

Control your Content

There is something of a gap between MarkDown textareas (limited, hard to use) and classical HTML WYSIWYG editors (content becomes a non-semantic blob). ProseMirror aims to fill this gap.

It does this by decoupling its content model from HTML. ProseMirror ships with a default document schema that is quite close to CommonMark, but allows you to define your own content schema, including exactly the elements you need, and possibly adding your own custom elements.

ProseMirror is open-source under an MIT license.

↖ You can edit this


ProseMirror is designed to allow customization and extension throughout.


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.

ProseMirror is being developed on GitHub. You can find a git mirror here as well. Contributions are welcome.

The easiest way to install ProseMirror is with npm. It is currently in beta stage, meaning that you are encouraged to try it out and report issues, but that you are still likely to run into bugs.

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.


Get a feel for the editor's possibilities by playing with these: