[Free] Scribe — a true WYSIWYG editor, with no Markdown anywhere in the stack
I've just released Scribe, a WYSIWYG editor for Flarum 2 built on TipTap.
The part that makes it different: you can uninstall flarum/markdown and fof/rich-text entirely, and your existing posts keep rendering exactly as they did — no migration, no rewritten rows.

Why another editor
Every WYSIWYG editor for Flarum so far has been a rich editor sitting on top of Markdown. The document is serialised to Markdown when you submit, and parsed back from Markdown when you edit. That is why flarum/markdown is a hard dependency of fof/rich-text.
It also explains the thing people actually complain about: Markdown keeps leaking into an editor that is supposed to be what-you-see-is-what-you-get. You type **bold** and it turns bold. You paste code with underscores and half of it goes italic.
Scribe removes the Markdown layer instead of hiding it. TipTap already speaks HTML natively, so taking Markdown out makes the pipeline simpler, not harder. Type **asterisks** in Scribe and they stay exactly as typed, because nothing downstream is looking for them.
"But won't that destroy all my old posts?"
This was the first thing I checked, and the answer is no — but only because Scribe does something specific about it.
Flarum doesn't store posts as source text. It stores them as s9e TextFormatter XML, and the tag vocabulary in that XML — STRONG, EM, H2, LIST, LI, C — belongs to s9e, not to Markdown. Markdown was only ever one parser feeding those tags.
So Scribe emits the same vocabulary from HTML, and ships templates for the tags flarum/markdown used to own. A post written three years ago in Markdown and a post written today in Scribe are the same shape in the database and go through one render path.
Worth being blunt about the alternative: if you uninstall flarum/markdown on a forum without something doing this, every post you have quietly flattens. The text survives; every heading, bold, list and code span does not. There's no error — it just renders as plain text from then on. That failure is the reason this extension has the design it has.
If you run flarum/bbcode, it keeps ownership of the tags it already provides (CODE, QUOTE, URL, IMG, LIST, LI, DEL, EMAIL), so syntax highlighting on code blocks and quote citation carry on untouched.
Things Markdown could never do
Because posts no longer have to be expressible in Markdown:
- Tables. s9e's Litedown has no table syntax at all — on a Markdown forum a pasted table renders as a paragraph full of pipes. Scribe gives you real tables.
- Text colour, underline, and highlight.

Build your own toolbar
Every feature is a chip you drag into the toolbar, in whatever order you want it. Drag it back out to remove it. Keyboard users get the same control: Enter adds a feature, arrow keys move it, Delete removes it.

Performance
This was the other thing I wanted to get right, because "the rich editor made my forum slow" is a fair complaint about editors of this kind.
TipTap and ProseMirror come to roughly 430KB. Bundled into forum.js, that is downloaded, parsed and executed by every visitor on every page view — including guests who can't post at all. Scribe loads the editor as a separate chunk, the first time a composer actually opens:
| Asset | Size | When it loads |
forum.js | 10 KiB | every page |
| editor chunk | 431 KiB | first time a composer opens |
The toolbar also re-renders only when the set of active buttons genuinely changes, rather than on every keystroke.
Works with what you already run
- Mentions — unchanged.
@name autocomplete and rendering are untouched.
- Quoting a post —
flarum/mentions inserts Markdown through the editor interface; Scribe turns it into a real blockquote.
- FoF Upload — inserts
; Scribe turns it into a real image node.
Those last two matter more than they look: other extensions have every reason to keep speaking Markdown through Flarum's editor driver, because that has always been the contract. Scribe translates just those constructs on the way in, so it doesn't quietly break the extensions around it.
Install
composer require ernestdefoe/scribe
php flarum cache:clear
Then disable flarum/markdown and remove fof/rich-text.
Links
Bug reports and feature requests are welcome, either on the support forum or on GitHub. If you find a post that renders differently after you drop Markdown, I want to know about it — that's the case the whole design exists to handle.