toa://scribe

GitHub-native editor for static sites.

200 OK

OVERVIEW

scribe is a GitHub-native editor for Hugo and Astro static sites. It reads and writes files directly via the GitHub Contents API, commits to your main branch, and lets your existing build pipeline handle the rest — simple mode for writers, advanced mode for developers.

FEATURES

Framework-aware

Auto-detects Hugo vs Astro per repo.

GitHub-native

Reads and commits files straight through the GitHub Contents API, on your branch.

Front-matter & menus

Edit categories, tags, the draft toggle and site menus without touching YAML by hand.

Markdown + preview

CodeMirror 6 editor with live preview, shortcodes and image upload.

Least-privilege & audited

Connects through a GitHub App scoped to only the repos you grant it; every action is recorded in an audit log.

WHAT'S NEW

v1.2.2 2026-06-15
  • changed Honest connect-GitHub copy: the token is stored encrypted on the server (not "never in a database"), and access is limited to the repos you install the GitHub App on — content only, not the rest of your account.
  • added Audit-log retention (data minimisation): entries older than AUDIT_RETENTION_DAYS (default 90) are purged at startup.
v1.2.1 2026-06-15
  • fixed Repo list is now opt-in: the main view shows ONLY the repos you have selected. Previously an empty selection showed every accessible repo; now it shows none until you pick repos on the select-repos page (which still lists all via ?all).
v1.2.0 2026-06-15
  • changed GitHub auth migrated from an OAuth App (repo scope) to a GitHub App (SEC-2). Access is now limited to the repos the user installs scribe on, with Contents + Metadata permissions only — no blanket access to every repo they own. User access tokens expire and are refreshed server-side via the stored refresh token; the encrypted token store is the single source of truth (replacing the forwarded X-GitHub-Token header).
  • added BE-1 round-trip regression tests for the named TOML edge cases — a section after the menus block, a # inside a quoted value, and unknown menu fields (the parser was already migrated to tomllib/tomlkit; these guard it).

API

tor@toa: ~ /scribe --routes
GET /api/v1/github/repos
GET /api/v1/github/repos/{owner}/{repo}/files
PUT /api/v1/github/repos/{owner}/{repo}/file
POST /api/v1/github/repos/{owner}/{repo}/image
MORE APPS
all apps →
bl
toa://blog
200 OK

Headless multi-site blog engine. Write once, publish to any toa:// site over a REST API. No platforms, no lock-in.

CMS FastAPI PostgreSQL Nuxt 4
co
toa://contact
200 OK

Embeddable, multi-tenant contact forms. Drop a one-line iframe on any site; spam-filtered submissions land in that site's own inbox, ready to read, reply to and get alerted on.

Forms FastAPI PostgreSQL Nuxt 4
ba
toa://backup
200 OK

Multi-tenant database backup orchestration. Schedule, monitor, and restore PostgreSQL, MySQL, and SQLite to remote and S3-compatible storage.

Infrastructure FastAPI PostgreSQL Nuxt 4