Activity
LAST 24 HOURSModule names and event types only. Nothing personal reaches this page — it aggregates what each module deliberately publishes and never reads panels or the raw event log.
How it's built
ARCHITECTUREA feature is a folder
Each module declares its own panels, commands and timer jobs. The deck discovers them at boot — nothing central changes to add the fortieth one.
The event bus is the substrate
Modules emit; SQLite persists; anything needing history queries the bus. The morning briefing is a query, not a subsystem.
1 GB is the whole design
One worker, hard memory ceilings, on-demand services, and no transcoding — ever. Writes are batched because SD cards die from write cycles, not age.
Failure is contained
A module that won't import, lacks credentials, or throws on startup is disabled with a visible reason. A bad panel faults in its own tile. The deck always boots.