Building Quill, a markdown editor that speaks my website’s language

Every post on this site starts life as a folder: some markdown, a /blog/quill/
directory of web-ready images, maybe a thumbnail. For a long time I assembled
that folder by hand — writing in one editor, optimizing images in another,
renaming files to match whatever my ingest script expected that week. It worked,
but it was fiddly, and fiddly is where mistakes live.

So I built Quill.

What it is

Quill is a small desktop app for authoring posts. It’s written in Rust on top of
GTK4, with a GtkSourceView editor on the left and a live WebKit preview on the
right. The preview isn’t generic markdown — it mirrors my site’s actual
typography and light/dark Gruvbox theme, so what I see while writing is very
close to what gets published.

The part that matters: it outputs the right shape

The whole point of Quill is that its on-disk format is my website’s ingest
format — not an export step bolted on at the end. When I save a post, I get a
folder named blog_my-slug/ containing a post.md with YAML front matter, a
/blog/quill/ folder, and an optional thumb/. That drops straight into my site’s
incoming/ pipeline with zero reshaping.

What’s next

A proper metadata panel for tags and descriptions, a thumbnail picker, and
eventually a LaTeX PDF export so every post has a typeset download. But the core
loop — write, save, ingest — finally feels like one tool instead of three.