Skip to content

🏗️ Architecture

Layer How it's built
Data A single, normalized SQLite database, prefixed domains (fin_, home_, people_, app_…), self-documenting DDL
Build Python generators, one per section → static HTML; a shared header/footer component (version + date + 🌡️ server temperature)
Served A home SBC running nginx in a container: static files + proxies behind single sign-on
Interactive ~100-line microservices with live JSON and audit logging; editors with a pre-write snapshot and undo
API + PWA Read-only JSON endpoints; an installable app with offline caching
Modules Sections you install/remove from the App Store, each with a manifest declaring its data permissions
Connectors Modules with disclosed, boxed-in database-write access — a trusted, generic ingest engine in the core writes on their behalf so no connector ever sends SQL. Connectors and other optional modules live in a separate, lighter companion repository dedicated to the catalog, keeping the core repo focused on the platform itself.
Platform Job registry, event/audit stream, validated configuration and an upgrade lifecycle — see Platform
Automation Quotes and pages refresh every 20 min during market hours, the calendar every hour, nightly backups; a daemon orchestrates it all and steps aside while you're typing