tidypress

Release: TidyPress 1.0

The first stable line for turning a repo into a public interface.

TidyPress 1.0 is the first stable line for the idea behind the project: your repo already contains the work, and the site should be the public interface for that repo.

The durable artifacts are intentionally boring: a site/ tree you can review in git and a static site/build/ folder you can deploy with the host you already use. Inspectable, diffable, portable.

Install

npm install tidypress
# or
pip install tidypress

Node.js 22.12+ is required for rendering. The Python package wraps the same CLI for notebooks and helper commands; site builds still go through the Node engine.

What shipped

One publish root. tidypress init scaffolds site/ with tidypress.config.ts, typed collections under src/content/, and a gitignored build/.

Presets for real public surfaces:

PresetShape
lab (default)writing + projects on the home page
blogwriting only
personahero, projects, writing, about page
body-of-workworks, projects, writing, reference, process
body-of-work-docsbody-of-work + enabled docs collection
docs-writingdocs collection + writing

Collectionswriting (RSS, dates), projects / works (home cards), docs (sidebar-ordered guides at /docs/…; enable per preset or config), plus custom keys with known kinds.

Build artifacts keep the publishing contract explicit:

Agent skills teach Cursor, Claude Code, or Codex the same repo shape: npx tidypress skills install.

Command surface

init, dev, build, preview, clean, deploy, doctor, import devto, skills install, add-version.

Experimental surfaces editor, export, and ai stay behind explicit config flags.

1.0.x policy

Patch releases on the 1.0.x line until the next planned minor.

Try it

npx tidypress init --site-url https://yoursite.example
npx tidypress dev
npx tidypress build

Docs: Getting started · Examples · GitHub