# Phase 8: Admin Dashboard - Context

**Gathered:** 2026-02-04
**Status:** Ready for planning

<domain>
## Phase Boundary

Provide customizable dashboard after login and plugin settings interface. Dashboard displays widgets from plugins. Plugins can register settings pages accessible from admin menu. Settings use the same YAML-driven form system from Phase 7.

</domain>

<decisions>
## Implementation Decisions

### Dashboard Layout
- Masonry/fluid layout — widgets flow and stack based on their size
- Drag-and-drop customization — admins can reorder, resize, show/hide widgets
- Per-user layout preferences — each admin has their own dashboard arrangement
- Reset to default option — admins can restore plugin-provided default layout

### Widget System
- Widget types: stats/charts, lists/tables, and quick actions — all supported
- Sizing: plugin-defined defaults with admin customization
- Real-time updates via WebSocket/SSE — widgets receive push updates for live data
- Widget configuration — widgets can have their own settings (e.g., item count, date range)

### Settings Pages
- WinterCMS pattern: plugins define top-level menus for model CRUDs and custom views
- Central Settings area where plugins register their settings
- Grouped by category (System, Content, Users, etc.)
- Plugins can register new categories beyond core defaults

### Empty/Loading States
- Fresh install: default system widgets pre-populated (recent activity, quick links)
- Loading: skeleton screens matching content layout
- Empty widget: friendly message explaining why empty and what to do
- Error state: inline error within widget with retry option

### Claude's Discretion
- Save behavior for settings forms (HTMX vs full page based on patterns)
- Default widget arrangement on fresh install
- Exact skeleton screen designs
- Category ordering in settings

</decisions>

<specifics>
## Specific Ideas

- "Like in WinterCMS" — follow WinterCMS patterns where plugins have their own top-level menus for CRUDs but settings centralized
- Real-time widget updates prioritized over polling

</specifics>

<deferred>
## Deferred Ideas

None — discussion stayed within phase scope

</deferred>

---

*Phase: 08-admin-dashboard*
*Context gathered: 2026-02-04*
