Skip to content

My attempts to not use EmDash CMS

CMS' are difficult to get right and all my clients want a WYSIWYG

Posted on:
less than a minute

EmDash CMS has been all the hype on the web lately. It seems like a reasonable project to replace Wordpress. I've been working with Astro for a while and I think it fits very well for the problem. Excitedly, I took exports from a WordPress website I help administer, Inverse Journal. After trying many variations, the imports would not work at all. So I thought, well, working with D1 and R2 aren't my first choice in life anyway, how about I look at other ways to do this that are local-only.

WYSIWYG (reads /assets and /content) --> Serializes content to JSON -> Save files to the file-system --> Astro content collections --> Block renderer --> Static HTML

So after looking a bunch of formats that are more extensible than Markdown, like PortableText, I decided to settle on handling this with just the pure Tiptap WYSIWYG JSON output.

The website I created in a few hours in Astro.

So all my posts were structured as the Tiptap block JSON, rendered by Astro, and edited using a React based project. All running locally. This could be extended to a CMS-like setup with a Github App.

The React editor interface built using Tiptap.

I don't think I quite have the right idiom for this but I think I'm close to figuring out how I'd want a WYSIWYG editor to look like for me, if I used or recommended one.