Platform admin
Internal Kanban board
The Glozr team uses an internal Kanban board at /admin/board to track work in flight. It's hidden from public navigation and locked to super-admin access — the durable home for backlog items, active work and shipped features.
Purpose
The board consolidates feedback, design notes and postponed features that would otherwise scatter across Slack threads, scratch docs and somebody's memory. Engineers start each session by opening this page as their primary reference point.
Column structure
| Column | Purpose |
|---|---|
| Backlog | Planned work not yet started. |
| In progress | Actively being worked on. Target: 1–3 items. |
| Review | Completed code awaiting validation or deployment. |
| Done | Shipped and verified. |
Live synchronization
The board refreshes every 8 seconds via Inertia's partial reload. The implementation includes:
- Single-flight guard. Prevents request stacking when the connection is slow.
- Tab visibility detection. Pauses polling when the tab is in the background.
- Dialog pause. Stops polling while edit forms are open so optimistic edits don't get clobbered.
- Clean unmount. Tears down the interval on page navigation.
A status pill displays “Live · last synced Xs ago” so you always know whether polling is active.
Sorting rules
Each column orders cards differently:
- Backlog — oldest first (FIFO).
- In progress — manual drag-drop order.
- Review — manual order.
- Done — most recently updated first.
Data storage
Cards persist as JSON at storage/app/private/kanban-tasks.json rather than in the database. This choice intentionally protects board data during development DB resets. Backups are a single cp away.
Card numbering
Every card receives a sequential, non-reusable number (#1, #2, …). Numbers stay stable even after a card is archived, so links and references hold over time. Legacy boards auto-backfill numbers from creation timestamps.
CLI commands
Add a card:
php artisan board:add "Title" --body="..." --label=category
Start work on a card:
php artisan board:start 14
Close a card (test plan is mandatory):
php artisan board:done 14 --test="..." --release=v1.1.0
Bulk-stamp a release version on every done card:
php artisan board:stamp-version v1.1.0 --status=done
Requirements
Every card must have a written plan before work begins. Closing a card requires UI-driven test steps (not code assertions). Version tags are optional at close time and can be applied retroactively via board:stamp-version.