Learn how to build advanced rich-text editors using Prosemirror and React.
400 pages of lovingly-typeset prose, distilled into clear and concise chapters. Avaiable in dark and light mode.
Build a framework-agnostic library with separate React bindings. Write every line of code from scratch.
Take advantage of a shared online experience, packed to the brim with author notes and editor cuts.
Enjoy 4 additional guides, spanning design notes, cheat sheets, extra challenges and testing.
The ecosystem has changed. Rich-text editors have now become table stakes in modern web development. Users expect rich formatting options, inline-comments, activity-tracking, spell-checking, collaborative-editing, and more. Despite these needs, there's an upsetting number of resources on how to build these tools. Additionally, most "batteries-included" frameworks are stuck in time and can't respond to changing environments. In this book, we'll use the Prosemirror toolkit to create a custom rich-text editor. We'll write every line of code from scratch to support a user's modern needs. By the end, we'll have a framework-agnostic editor (I've called mine Pine) with performant React-bindings to improve developer productivity. It'll be great! - Isaac Aderogba
We'll start with an introduction of Pine, struggle through the depths of Prosemirror, and emerge at our destination with React. Take a look at all of the content that we'll cover:
Begin your journey with a high-level overview of what we'll learn along the way.
Become deeply familiar with Prosemirror, building modules such as history management and editor keymaps from scratch. We'll leave no stone unturned and conclude with a composable library that we can bind to any framework.
Learn best practices for integrating Prosemirror with React. We'll also tackle advanced functionality such as activity tracking and spell-checking. The last chapter will stitch everything together into a final application.
Apart from the boilerplate starter repo, you'll write every line of strongly-typed Typescript from scratch. Take a look at some of the finer details of your editor:
Not only can you explore related chapters and sections without losing context, you'll find that each paragraph acts as a mini-discussion board that encourages you to communicate with other learners or the author.
Freely follow the trail of breadcrumbs to see how certain concepts relate to different chapters.
While the PDF book is intentionally concise, the interactive site is sprawling with notes on why certain architectural choices were made.
With the interactive site, you'll have the ability to leave comments on every single line of text. If you're stuck on a particular concept, I'll do my best to support you.
Each companion guide will either solidify knowledge, offer unique observations, or encourage you to expand the Pine editor in an interesting way.
Cheat sheets are one-page summaries attached to every chapter. Great for if you need a refresher on key concepts or code snippets.
Design notes accompany each chapter and expand on interesting design directions for the future of text editors.
Challenges accompany the code chapters and demonstrate how to expand the editor with new block-level nodes and inline marks.
TypeScript really is just JavaScript in the end, so we'll write tests to confirm that our editor behaves as expected.
“Crafting Rich-Text Editors” is available in three different editions with varying features. Pick the one that's right for you.