cerise.

From markdown to the page

Both sources go through the same renderer. Only the moment changes: on save for one, on read for the other.

Oct 27, 20261 min readBehind the scenesEn français

Close-up of makeup and lipstick swatches on a white background

An article always starts as markdown: plain text, with hash signs for headings and asterisks for italics.

For the repository's articles, cerise does the work once, when the article is saved. markdown-it turns the text into HTML, a filter removes anything not allowed, and the result is stored in Deno KV, ready to serve. A visit reads HTML that is already made.

For the CMS articles, Payload keeps the markdown. cerise reads it through the CMS's API, runs it through the same markdown-it and the same filter, then keeps the page in memory for 60 seconds.

Either way, the page arrives as HTML and CSS, without a line of JavaScript.

Written elsewhere

This post comes from the shared CMS

It is written in Payload, not in cerise's editor. Open a post from the repository instead: there, everything can be edited.

See Payload

Next post

Behind the scenes

Fast today, ready for tomorrow

One read per article, nothing to run in the browser, and one CMS for several sites.

Oct 27, 2026 · 1 min read

More to read

← All posts
View the raw textHide the raw text

This is the markdown as Payload keeps it. The page is built from it when it is read.

An article always starts as markdown: plain text, with hash signs for headings and asterisks for italics.

For the repository's articles, cerise does the work once, when the article is saved. markdown-it turns the text into HTML, a filter removes anything not allowed, and the result is stored in Deno KV, ready to serve. A visit reads HTML that is already made.

For the CMS articles, Payload keeps the markdown. cerise reads it through the CMS's API, runs it through the same markdown-it and the same filter, then keeps the page in memory for 60 seconds.

Either way, the page arrives as HTML and CSS, without a line of JavaScript.