Marmite Static Site Generator Skill
A skill for a zero-config Rust static site generator that turns a folder of Markdown into a complete blog, letting an AI agent manage the full build-author-publish workflow.
The skill builds static sites locally with transparent data flow and no covert exfiltration; atproto auth explicitly requires the ATPROTO_APP_PASSWORD env var. Deductions: recommended `curl | sh` and `iwr | iex` remote install scripts, and `--set-theme` installing themes from arbitrary GitHub/GitLab/ZIP URLs, create supply-chain and arbitrary-code-execution risk with no checksums, verification, confirmation or rollback guidance. Not scored lower because all such behavior is openly documented.
SKILL.md is internally consistent with cli-reference.md and config-reference.md; commands, flags and defaults cross-check cleanly, and key paths (init, build, serve, new, themes) are statically reproducible. Deductions: failure modes and error feedback are only sparsely covered (alias conflicts, link checks); installation depends on external network and third-party scripts without diagnosable fallback guidance.
Audience and scenarios are clear (blogs, docs, portfolio sites from Markdown), workflows are well segmented, post/page semantics and edge cases (translation-group detection) are precisely described, supporting accurate invocation. Deductions: distribution and auxiliary features depend on GitHub, marmite.blog, picsum and giscus, with no mainland-China reachability statement; English-only, no Chinese support declared.
Documentation is well layered (SKILL.md plus references for installation, frontmatter, config, content organization, deployment, comments) with examples, comparison tables and known-limitation notes; license metadata (AGPL-3.0) present. Deductions: no skill version, changelog, or mapping to marmite binary versions; SKILL.md appears truncated mid-section (Workspace Multi-Site); maintenance ownership and update path are not stated inside the skill files.
The goal (turn a markdown folder into a deployable site) is fully covered from install through authoring, configuration, theming and deployment, with zero-config onboarding and directly hostable static output. Deductions: static review cannot verify actual generated outputs (site, marmite., urls.); effectiveness of advanced features (auto image download, galleries, atproto publish) lacks execution evidence.
Key claims trace to in-repo source files, facts and inference are well separated, and config defaults cross-check between the CLI table and config reference. Deductions: no committed test suites or CI execution evidence covering the skill's key paths, so conclusions are not independently reproducible; third-party corroboration exists only as external links, unverified in the static material.
- Install steps recommend `curl -sS https://marmite.blog/install.sh | sh` and PowerShell `iwr | iex` — remote script execution; prefer verifiable channels (cargo/pip/brew/Docker) and review the script first.
- `--set-theme` installs themes from arbitrary URLs including ZIPs — a supply-chain risk; vet theme sources before use.
- atproto publishing requires an app password via environment variable; avoid leaking credentials into files or logs.
- Comment systems (Giscus/Utterances/Disqus) and picsum image downloads depend on overseas services that may be unreachable from mainland-China networks without a proxy.
- SKILL.md is truncated in the Workspace Multi-Site section; consult the full repository documentation for workspace workflows rather than this file alone.
- This is a static source review with no execution; all effectiveness conclusions are low confidence.
What does this skill do, and when should you use it?
Marmite is a zero-config static site generator written in Rust that converts a folder of Markdown files into a complete website, aimed primarily at bloggers publishing chronologically. This skill wraps its entire workflow: scaffolding sites, creating posts and pages, managing tags/authors/streams/series taxonomies, customizing Tera templates and themes, plus image optimization and media management. Notably, it prescribes a 'consult site metadata before writing' workflow — reading the generated marmite. and urls. to prevent tag typos, slug collisions, and inconsistent author names. It fits anyone who wants a Markdown blog quickly with AI-assisted content management.
Reads all .md files in an input folder, parses them to HTML via CommonMark, extracts optional metadata from frontmatter or filenames, and outputs a flat static site to an output folder. Concretely it runs: marmite <folder> --init-site to scaffold a project; --new to create tagged posts; --serve --watch for local preview with live reload; reads <output>/marmite. (full site manifest) and urls. (URL listing) to check existing slugs, tags, authors, streams, and series; generates RSS feeds, sitemap, and tag/author/stream/series pages; and supports Tera template customization (--init-templates), theme creation (--start-theme), shortcodes, image galleries, automatic image resizing, atproto publishing, and a built-in content editor.
- A blogger starting from scratch: run marmite . --init-site and preview locally within minutes
- A user with a folder of existing Markdown notes: just run marmite <folder> — no setup needed
- An AI agent writing content: read marmite. first to reuse exact tags and slug conventions, keeping the site consistent
- A multilingual creator using language streams with auto-discovered translations and hreflang SEO tags
- A developer customizing appearance: export Tera templates with --init-templates or build a full theme with --start-theme
- An author writing multi-part tutorials who wants automatic prev/next navigation via series
What are this skill's strengths and limitations?
- Zero configuration to start; everything embedded in a single binary
- Built-in 'read site metadata before writing' workflow prevents tag typos and slug collisions
- Covers the full workflow: scaffolding, authoring, templates, themes, image optimization, deployment guidance
- Modern features included: IndieWeb microformats, i18n, galleries, shortcodes
- Comes with 10+ reference docs and install methods for Linux/macOS/Windows/Docker
- The project explicitly aims for simplicity — don't expect complex features; it targets bloggers, not general CMS users
- Default output is flat HTML files (./{name}.html); subdirectory layouts require workspace mode
- AGPL-3.0 licensing may constrain some commercial integrations
- Some features (comments, math, Mermaid) require extra configuration or external scripts
How do you install this skill?
Install the marmite CLI first (any one): curl -sS https://marmite.blog/install.sh | sh; pip install marmite; cargo install marmite; brew install marmite; or docker run --rm -v $(pwd):/input ghcr.io/rochacbruno/marmite. Then install the skill into your project: marmite --skill-install (into .agents/skills/) or marmite --skill-install-claude (into .claude/skills/ for Claude Code); both can run together.
How do you use this skill?
New project: mkdir mysite && cd mysite && marmite . --init-site && marmite . --serve --watch, then open the local server in a browser. Before writing, have the agent read site/marmite. and site/urls. to confirm existing tags, slugs, and authors, then create posts with marmite . --new "Title" -t "tag1,tag2". A folder that already has Markdown needs only marmite <folder> to build. Full details live in the references/ directory covering CLI, config, frontmatter, and templates.
How does this skill compare with similar options?
The project's own README names comparable tools: Cobalt, Zola, and Zine, positioning Marmite as the simpler option — its pitch is pointing at a folder of Markdown and running a single command, without the heavy setup of other SSGs.