# Architecture NexaPantry uses a small but explicit service architecture: - React/Vite/TypeScript frontend with TailwindCSS and PWA service worker - FastAPI backend with SQLAlchemy ORM - PostgreSQL as the system of record - Redis for future distributed rate limiting and queued job coordination - Caddy as reverse proxy and security header layer - Worker process for expiry notifications and mail delivery preparation Core authorization is home-scoped. Every product, shopping item and recipe request first checks the caller's home membership. Instance admins can manage system settings and users through dedicated admin endpoints. External barcode lookup is hidden behind `ProductLookup`, currently implemented by `OpenFoodFactsLookup`. A future provider can be added without changing the frontend contract.