Core Principles
- Each module is self-contained: one module per function.
- Modules are designed to be independent but can interact via APIs if needed.
- Focus on simplicity: aim to implement ~80% of a device’s functionality.
- BUG is mobile-first: UI components are designed to scale across screen sizes.
- Performance matters: consider the load on devices and frequency of data polling.
- Modules run in Docker containers, isolating their backend logic from the core system.
- Module memory is volatile: any temporary data should not be relied upon for persistent state.