react-canvas VS slate

Compare react-canvas vs slate and see what are their differences.


High performance <canvas> rendering for React components (by Flipboard)


A completely customizable framework for building rich text editors. (Currently in beta.) (by ianstormtaylor)
Our great sponsors
  • Syncfusion - See why our products are consistently getting 4.6 out of 5 stars by your peers.
  • Nanos - Run Linux Software Faster and Safer than Linux with Unikernels
  • Scout APM - A developer's best friend. Try free for 14-days
react-canvas slate
4 12
12,737 22,429
0.3% -
0.0 9.6
almost 3 years ago 7 days ago
JavaScript TypeScript
BSD 3-clause "New" or "Revised" License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of react-canvas. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-05-12.
  • Google Docs will move to canvas based rendering instead of DOM | 2021-05-12
    I remember Flipboard using canvas to render their UI before using react, which has the same idea, you can look at the repo and their post about it:

  • Using KonvaJS as canvas with React | 2021-03-25
    React Canvas
  • Is it possible on react native ???
    You can also try using Canvas element in react
  • Any js game library where I can use react ? | 2021-03-02
    I'm confused, there is react-canvas. Does it just not work very good?


Posts with mentions or reviews of slate. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-10-08.
  • Anyone ever tried creating a text input similar to discord's in react? | 2021-10-08
    Ok good to know. Although, the Mention Example seem pretty complicated for what feels like such a simple task but still good to know about this in case I ever need it in the future
  • Slate – A completely customizable framework for building rich text editors | 2021-07-29
    I've been using Slate heavily this year. I'm not a Slate developer, but I've read a lot of the source code, follow all the Github issues, etc., and I'm "owning an aging fork". As far as I can tell, the API instability mentioned elsehwere in this thread resulted from a nearly complete rewrite (inspired by immerjs) that launched in May 2020; for over a year since then, the API has been very stable, mainly because Ian Taylor, who wrote most of Slate, seems to have moved on to other projects (see there's still a lot of work on Slate, but it's mainly by other people who are trying to preserve the vision that Ian laid out. I ended up forking only the React part of Slate, which is officially a plugin, and massively rewriting it to support virtualized windowing, so we can work with very large possibly complicated to render documents. I also added fairly generic realtime collaboration support. This is currently used in for WYSIWYG editing of Markdown documents. I also have plans to extend my use of Slate with windowing to Jupyter notebooks and other document types.

    I chose Slate over Prosemirror because the source code of Slate is Typescript written in a clear modern style, and I was able to start reading any part of it and understand it easily, whereas I find Prosemirror's core source code more difficult (this may just be a reflection of my shortcomings). I spent a lot of time initially just reading Slate PR's claiming to fix bugs, then integrating the PR's into my fork, often in a way that makes sense for my project, but likely wouldn't in general (I left helpful remarks on Github).

    Slate is an interesting project, and it is comparable to Prosemirror. However, development is structured very differently at present, and I think there's little funding behind Slate, whereas the author of Prosemirror seems to have done a good job encouraging sustainable donations. I think Ian Taylor, who mainly wrote Slate, also cofounded a company called, which is a serious startup that was recently sold to Twilio, so I don't know what his motivations are... | 2021-07-29
    Slate is architected so everything that actually involves React is in a separate plugin called "slate-react". As explained here there's a package called "slate" that's "Slate's core data model logic.", and there's another package called slate-react that is "React components for rendering Slate editors.". For example, I just searched npm and quicly found "slate-vue" ( which is Slate, but with a Vue plugin instead of React. | 2021-07-29
    This is the one that did me in: | 2021-07-29
  • React WYSIWYG editor suggestion? | 2021-07-06
  • Google Docs will move to canvas based rendering instead of DOM | 2021-05-12
    With a canvas-based engine, the editor is no longer relying on the contenteditable spec right?

    For the majority of use cases, do you think contenteditable + view layer which precisely updates the HTML is still viable though. Or more specifically, what do you think about libraries like ProseMirror ( or Slate.js (

    I understand if you have really long documents or spreadsheets (I imagine latter is more frequent), you could maybe solve performance rendering problems with virtualization, which canvas gives more flexibility to?

  • Are there any rich text editors that work on mobile? | 2021-03-30 with the related comment: " Every ContentEditable editor where the source of truth is outside the DOM is running into this issue"

What are some alternatives?

When comparing react-canvas and slate you can also consider the following projects:

Draft.js - A React framework for building text editors.

quill - Quill is a modern WYSIWYG editor built for compatibility and extensibility.

ProseMirror - The ProseMirror WYSIWYM editor

TinyMCE - The world's #1 JavaScript library for rich text editing. Available for React, Vue and Angular

Konva - Konva.js is an HTML5 Canvas JavaScript framework that extends the 2d context by enabling canvas interactivity for desktop and mobile applications.

React Konva - React + Canvas = Love. JavaScript library for drawing complex canvas graphics using React.

PixiJS - The HTML5 Creation Engine: Create beautiful digital content with the fastest, most flexible 2D WebGL renderer.

CodeMirror - In-browser code editor

TOAST UI Editor - 🍞📝 Markdown WYSIWYG Editor. GFM Standard + Chart & UML Extensible.

Monaco Editor - A browser based code editor

trix - A rich text editor for everyday writing

Editor.js - A block-styled editor with clean JSON output