Getting started
FilePress is published on npm as getfilepress. The CLI bins are filepress and getfilepress (same script). You need Node.js 20+ and pnpm.
Scaffold a site
From a clone of the filepress engine:
pnpm install
pnpm create-site my-blog --external ../my-blog \
--title "My Blog" \
--url https://my.blog
cd ../my-blog
pnpm install
pnpm dev # local preview
pnpm build # → build/
The site folder stays content-only:
filepress.config.ts— title, URL, nav, topics, optionalhomePageposts/— dated Markdown posts (/posts/<slug>)pages/— evergreen Markdown pages (about.md→/about)static/— favicon, images, logotheme.css— optional Essay overridespackage.json— depends on"getfilepress": "link:../filepress"locally
Config
import { defineFilepressConfig } from 'getfilepress';
export default defineFilepressConfig({
title: 'My Blog',
description: 'Notes and essays.',
url: 'https://my.blog',
author: 'Me',
tagline: 'Ends before means.',
topics: [{ label: 'Essays', tag: 'essays' }]
});
title and url are required. Missing values fail the build with a clear error.
For a product-style home (static page at /, posts at /writing), set homePage: 'home' and add pages/home.md — this site does exactly that.
Commands
| Command | What it does |
|---|---|
filepress dev | Dev server + Genie FAB |
filepress build | Static build/ |
filepress preview | Serve the build (no Genie) |
filepress check | Type-check against the site |
In the engine monorepo, pass --site <name> (for example --site getfilepress). Sibling sites use cwd mode — no --site flag.