Architecture Decision Records¶
Short records of the significant technical choices in this repository.
Records 0002–0012 are marked reconstructed — needs confirmation: they were written by reading the code after the fact, so the decision is certain but the reasoning is inferred. Correct anything that doesn't match reality. Records 0013 onward were written alongside the change they describe and are accepted.
| # | Decision | Status |
|---|---|---|
| 0001 | Record architecture decisions | accepted |
| 0002 | Single monorepo, snapshot import | reconstructed |
| 0003 | NestJS + Fastify backend, one image for two apps | reconstructed |
| 0004 | PostgreSQL + TypeORM, migration-managed schema | reconstructed |
| 0005 | Redis for cache, locks, throttling | reconstructed |
| 0006 | MinIO for S3-compatible object storage | reconstructed |
| 0007 | Single-VPS Docker Compose + Caddy edge | reconstructed |
| 0008 | GitHub Actions → GHCR → pull-based deploy | reconstructed |
| 0009 | Next.js standalone admin portal | reconstructed |
| 0010 | Flutter mobile app | reconstructed |
| 0011 | Self-hosted Grafana LGTM monitoring | reconstructed |
| 0012 | Go/Fiber rewrite parked, not deployed | reconstructed |
| 0013 | Security hardening pass | accepted |
| 0014 | Account Admin portal, separate from operations | accepted |
| 0015 | Production migrations are an armed, single-use act | accepted |