Skip to content

Architecture

LayerTechnology
FrontendVue 3, Tailwind CSS, HeadlessUI, ECharts
BackendPython, FastAPI, Beancount, SQLite
DesktopPyWebView (wraps the web app as a native window)
+---------------------------+
| Desktop Shell |
| (PyWebView) |
+---------------------------+
| Vue 3 Frontend SPA |
+---------------------------+
| FastAPI Backend |
+-----------+---------------+
| Beancount | SQLite |
| (ledger) | (queries) |
+-----------+---------------+
  • Beancount is the source of truth for all financial data
  • The backend parses Beancount files and serves data via a REST API
  • The frontend consumes the API and renders dashboards using a recipe system
  • The desktop app wraps everything in a native window using PyWebView