Architecture¶
FigureCollector is a small but layered app. The architecture is dictated by two non-negotiables:
- Hardened containers —
FROM scratchbackend, distroless nginx, read-only filesystems. Dictates how config flows in and how state flows out. - Offline-first PWA — TanStack Query cache + service worker + IndexedDB. Dictates how the API surfaces are designed (idempotent mutations, deterministic IDs).
Sub-pages:
- Stack — every dependency and why
- Data model — the Postgres schema, table by table
- Security contract — what the system guarantees and what it does not