# Architectuur FastAPI met Jinja2, server-side gerenderd. SQLite via `dataset`, synchroon en bewust zonder threadpool. Sessies met PBKDF2-SHA256 wachtwoorden. ## Lagen - `molodetz/database/`: één bestand per onderwerp, importeer altijd vanaf de package-root. - `molodetz/routers/`: spiegelt het URL-pad. - `molodetz/services/`: achtergrondservices onder één supervisor met een bestandsslot. - `molodetz/templates/`: één Jinja-omgeving in `templating.py`. ## Verwijderen Alles wordt zacht verwijderd met `deleted_at` en `deleted_by`. Alleen opruimtaken verwijderen hard. ## Statische bestanden Assets lopen via `static_url()`, wat ze versioneert onder `/static/v/`. Die zijn een jaar onveranderlijk cachebaar.