Glozr docs

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

ColumnPurpose
BacklogPlanned work not yet started.
In progressActively being worked on. Target: 1–3 items.
ReviewCompleted code awaiting validation or deployment.
DoneShipped 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.