Documentation
Nera is a lightweight static site generator built on a simple idea: Markdown in, HTML out, with plugins for everything else. This guide takes you from an empty folder to a deployed site.
The shape of a Nera project
my-site/
├── config/ # app.yaml + one <plugin>.yaml per plugin
├── pages/ # your Markdown content
├── theme/
│ ├── views/ # Pug layouts and page templates (vendor/ holds plugin templates)
│ └── assets/ # CSS, JS, images, fonts — copied verbatim to public/
├── src/plugins/ # optional local plugins, one folder each
├── public/ # generated output (never edit by hand)
├── AGENTS.md # instructions for AI assistants (CLAUDE.md points to it)
└── package.json # one Nera dependency: @nera-static/nera
nera new creates everything here except src/plugins/ and public/. Local
plugins can live in another folder, set with folders.plugins in
config/app.yaml. Sites from before the theme system keep views/ and
assets/ at the project root; Nera still builds them, with a deprecation
warning, until you move both folders under theme/.
How a page becomes HTML
- Load
config/app.yamlinto theappobject and listpages/. - Render each Markdown file, extracting frontmatter into
meta. - Apply plugins, which enrich
appandmeta. - Write
public/, running each page through itslayout.
A page is only rendered if its frontmatter sets a
layout. Pages without one are silently skipped — this is the single most common "why is my page missing?"npx nera validatelists them (layout-missing).
Continue to Getting started to scaffold your first site. Working with an AI assistant? Read Using Nera with AI.