Backend: internal/widget registry (type metadata + Fetcher), Pi-hole
v5 / AdGuard / Immich fetchers, /api/widgets/types + /api/widgets/:id/data
with 30s TTL cache (failures cached too), kind+config on item create/patch.
Config secrets are never logged or echoed in errors.
Frontend: WidgetContent host maps config.type to a component, polls
/data every 30s for server-backed types; clock renders client-side.
Generic WidgetDialog builds its form from the registry's field list.
Widget tiles are sortable items in both renderers.
Generated with [Devin](https://devin.ai)
Authored By: TDvorak <[email protected]>
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
All four styles are board renderers over one shared store, not color
themes. Renderer contract (Board/Section/Item/Widget) lands in Phase 1;
Cards ships in v0.1.0 to validate the seam early, Index and Console
follow in v0.3.0.
Generated with [Devin](https://devin.ai)
Authored By: TDvorak <[email protected]>
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Primary renderer is D (bento grid, mono palette). A/E/F kept as
alternate view themes on shared tokens. B and C deleted.
Roadmap now maps phases to releases v0.1.0 -> v1.0.0.
Generated with [Devin](https://devin.ai)
Authored By: TDvorak <[email protected]>
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
D merges the two shortlisted directions (bento grid, mono palette,
no glow). E and F probe two different paradigms: editorial list and
terminal console.
Generated with [Devin](https://devin.ai)
Authored By: TDvorak <[email protected]>
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Captures product requirements from prompt.md, approves SQLite over
Postgres for single-binary deployment, and sketches the Go+React
architecture, data model, API surface, and phased roadmap to OSS v1.0.
Generated with [Devin](https://devin.ai)
Authored By: TDvorak <[email protected]>
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>