Skip to content
- A markdown editor whose preview is the page: the same renderer the site
uses, with your template, navigation and stylesheets in it
- Front matter for a page's title, description, date, layout and more
- Contents lists, callouts (
> [!NOTE]) and [[wiki links]] between pages
- Templates and stylesheets edited in the browser, in a pane below the page
- An image browser with upload, and pictures kept at narrower widths for
smaller screens
- Earlier versions of every page, and anything deleted, one press from coming
back
- Help in the editor, a page per topic, each example shown beside what it gives
- A site's look is a few CSS variables in
theme.css, with dark mode
- The site's tab and home-screen icon, and the card a shared link shows, set
in the editor from any picture
- Navigation made from the folders, and folder listings that keep themselves
- Accessible by default: keyboard, screen readers, larger text, less motion
and High Contrast all get the same site
- Search in the reader's browser: an index in parts, fetching only the words
they type, with no service and no dependency. It works on a published site.
- A sitemap, Atom feeds for a folder, and a card when a link is shared
- A 404 page, and old addresses that move to new ones
- Collections: a gallery or catalogue kept as data in one file, with a page
per item and as many overviews as you like, edited as works, not as JSON
- Other languages: a folder per language, written by people. duckdown never
translates. A page not yet translated shows the original with a note, and a
translation records what it was made from, so you know when it falls behind.
- Extensions: routes a site adds, like a form or an RSVP, served by both
servers in the site's own template
- Pages kept on disk or in an S3 bucket
- Signing in with a cookie, and editors managed in the editor
- Publishing from the editor: Publish checks the site, commits it and
pushes, and Pull brings in what was published from elsewhere
duckdown upgrade moves a site to a new release, comparing its export
before and after
- A view log that counts readers without identifying them: no IP, no user
agent, no cookie.
duckdown report turns it into a report in the editor.
- No build step: Bun serves everything