In most rich text editors the DOM is the source of truth and the editor reads and attempts to sanitize HTML when you&#x27;re done.<p>Draft.JS is a controlled input. The view is completely derived from the model. This eliminates whole classes of browser and editor bugs.<p>It&#x27;s also makes the editor really easy to extend. You can add new object types and complex styling without having to worry about all the nuances of text editing.<p>For example you could highlight hashtags by giving the editor a regex to match and then tell it which styles your hashtag should be decorated with. Draft.js handles creating and removing tags as you type, drag and drop, copy, paste, etc.