Like this one! Try it out by typing in here or see more examples.

An ideal content editor produces structured, semantically meaningful documents, but does so in a way that is easy for users to understand. ProseMirror tries to bridge the gap between Markdown text editing 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.

Features

Collaborative editing ProseMirror has built-in, ground-up, rock solid support for collaborative editing, where multiple people work on the same document in real time.

Extensible schemas Document schemas allow editing documents with a custom structure without writing your own editor from scratch.

Modular A modular architecture makes sure you only load the code you need, and can replace parts of the system as needed.

Pluggable A plugin system allows you to easily enable additional functionality, and package your own extensions in a convenient format.

Functional A largely functional and immutable architecture makes it easy to integrate ProseMirror into modern web apps, and confidently implement complex behavior.

Unopinionated The core library is small and generic, providing a base onto which very different types of editors can be built.

About

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: