duckdown
Write markdown, see it live, publish your site.
duckdown is a small content management system built with Bun and Railroad. A site is a folder of markdown pages, a template or two and a stylesheet. duckdown turns that folder into a website, and gives the people who look after it an editor whose preview is the page itself.
Served or published
duckdown is a server, and it is also a static site generator. Which one you use depends on who edits the site, and from where.
- Served: duckdown runs, and anyone with a login edits at
/edit, from any browser, even a phone. - Published: one person writes at a desk,
bun run exportwrites the whole site as plain files, and any static host serves them. No login is on the internet at all.
The pages are the same markdown either way, rendered by the same code, so you can change your mind. This site is published: plain files on S3.
What you get
- An editor whose preview is the page: your template, your navigation, your stylesheets
- Templates and stylesheets edited in the browser too, watching the page change
- Search in the reader's browser, with no service behind it
- Collections: a gallery or catalogue kept as data, with a page per item
- More than one language, translated by people, with a note when a page has changed since
- A view log that counts readers without identifying them: no IP, no cookie
- Extensions: a form or an RSVP, on the site's own address
There is more on the features page.
Start
mkdir my-site && cd my-site
bun init -y
bun add github:blueshed/duckdown#v0.18.1
bunx duckdown init
bun install
bun run dev
Then open http://localhost:8080/edit. Getting started says what each step does.
duckdown is open source, on GitHub.