Pagerite: single-user CMS/blog

FastAPI backend rendering HTML with html5tagger, content persisted in a
kanta database and rendered per request. Vue only for the editing tools
(page editor over a WebSocket, site/structure editor); public pages are
plain HTML with fetch navigation. No auth: single trusted author.
This commit is contained in:
2026-08-16 05:49:38 +00:00
commit 36b250a15c
38 changed files with 9085 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
# Pagerite
A single-user CMS/blog. FastAPI serves HTML rendered in Python with
html5tagger, content is persisted in a kanta database and rendered on
the fly per request. Vue is used only for interactive bits (the editing
tools), not for the public pages.
## Running
```sh
uv run pagerite # serves the built frontend
uv run scripts/devserver.py # dev mode with auto reloads (no build needed)
```
The database lives in `pagerite.kanta` in the working directory
(`PAGERITE_DB` overrides). On startup, demo pages from `pagerite/seed.py`
are added only if missing.
## Editing
Click the 🖊️ pen on any page: the article pen opens the page editor
(Markdown with live server-rendered preview over a WebSocket), the banner
pen opens the site editor (site brand, banner HTML, and the page
structure tree). Everything saves immediately — no save buttons.
See `docs/design-principles.md` for the design and `AGENTS.md` for the
development conventions.