Markdown makes sites - A Static Site Generator for Blogs
Marmite
Marmite [Markdown makes sites] is a very! simple static site generator.
I'm a big user of other SSGs but it is frequently frustrating that it takes so much setup to get started. Just having a directory of markdown files and running a single command sounds really useful. — Michael, marmite user.
How it works
It does "one" simple thing only:
Reads all .md files on the input directory.
Using CommonMark parse it to HTML content.
Extract optional metadata from frontmatter or filename.
Generated html file for each page.
Outputs the rendered static site to the output folder.
It also handles generating or copying static/ and media/ to the output dir.
Before you start, you should know
Marmite is meant to be simple, don't expect complex features
Marmite is for bloggers, so writing and publishing articles in chronological order is the main use case.
The generated static site is flat HTML by default (./{name}.html|rss|json). Workspaces can produce subdirectory-based multi-site layouts.
Taxonomies: tags:, stream:, series:, authors:, and languages: (i18n)
Marmite uses the date: attribute to differentiate posts from pages
Workspace multi-site support (single command builds, config inheritance, cross-site references).
AT Protocol / standard.site integration (publish posts to the decentralized social web).
Embedded AI agent skills for AI-assisted site management.
Available via cargo, pip/uvx, Homebrew, AUR, FreeBSD, Docker, and install script.
Installation
bash
curl -sS https://marmite.blog/install.sh | sh
Also available via cargo, pip/uvx, Homebrew, Arch Linux, FreeBSD, and Docker.
See the full installation guide for all methods.
Usage
It's simple, really!
bash
$ marmite folder_with_markdown_files path_to_generated_site
Site generated at path_to_generated_site/
CLI
…
Run marmite --help for the full list of options including site metadata overrides,
search, pagination, and other configuration flags.
Live reload in development
When running with --serve --watch (or --serve -w), Marmite automatically rebuilds
on file changes and refreshes the browser via WebSocket. The default theme includes
live reload out of the box. For custom themes, add this snippet to your base template: