I was planning on building something similar. My first attempt involved trying to get grapesjs to work with react. This attempt was very cumbersome because grapesjs generated html, and I would try to manipulate the html into react.<p><a href="https://github.com/artf/grapesjs" rel="nofollow">https://github.com/artf/grapesjs</a><p>Later however, I discovered craft.js, which is basically a framework for creating systems similar to this (page/component editors). Craft.js was inspired by grapesjs, but is specifically made for react.<p><a href="https://github.com/prevwong/craft.js" rel="nofollow">https://github.com/prevwong/craft.js</a><p>Of course craft.js only solves the UI editor, not the code parsing/generation part. Babel is an obvious choice for code generation/manipulation, but I found its imperative approach unnecessarily complicated, so I built react-ast to enable declarative and composable code generation using react.<p><a href="https://github.com/clayrisser/react-ast" rel="nofollow">https://github.com/clayrisser/react-ast</a><p>The part I had not figured out was using the code as the source of truth for the editor and syncing it back. I definitely thought about it a lot, but postponed solving it since I had more pressing problems.<p>So, I have a lot of curiosity about this project. How does it work? And how does it stack up against a technology like craft.js? I noticed it’s not using craft.js, so I’m guessing the developers rolled their own equivalent.