The flat-file CMS
for Deno and Fresh
Markdown content. TSX themes. Zero database.
Ships as a singleDeno module — no build pipeline required.
dune new my-siteMarkdown served the Fresh way
Markdown content
Write pages in Markdown or MDX — embedding Fresh islands directly in your content for interactive components right in the prose.
TSX themes
Themes are Preact components — the same model Fresh uses. Full TypeScript, zero build step, Deno compiles TSX on the fly.
Plugin system
Extend Dune with hooks for rendering, routing, and content — and ship interactive UI as islands that hydrate where you need them.
Multisite
Serve multiple sites from a single process with shared themes. Ideal for hosting families of sites.
i18n built-in
Multi-language routing, locale files, and language switcher — all wired up automatically.
Deploy anywhere
Run as a standard Deno HTTP server. Deploy to Deno Deploy, fly.io, a VPS — whatever you prefer.
Up and running in minutes
No config files, no installers, no local databases. Dune is a Deno module you import and serve.
Create a site
Run the CLI to scaffold a new site with a starter theme, sample content, and a ready-to-run deno.json.
Write your content
Drop markdown files into content/. Directories become sections. Frontmatter controls templates, titles, and metadata.
Ship it
Run dune serve. Point a domain at it. Done. No database, no build pipeline, no CMS vendor lock-in.
Minimal boilerplate
Two files to a working site: a deno.json and a site config.
# Install the CLI deno install -A -n dune jsr:@dune/core/cli # Create a new site dune new my-site cd my-site # Start the dev server dune dev # Build for production dune serve
{
"imports": {
"preact": "npm:preact@^10",
"preact/jsx-runtime": "npm:preact@^10/jsx-runtime",
"@dune/core": "jsr:@dune/core@^0.6"
},
"tasks": {
"dev": "dune dev",
"serve": "dune serve"
},
"compilerOptions": {
"jsx": "react-jsx",
"jsxImportSource": "preact"
}
}title: My Site description: Built with Dune url: https://mysite.com theme: name: starter
Ready to build?
Read the docs, scaffold your first site, and see how far a flat-file stack gets you.