- One home for the shared types. Every app now pulls its data shapes from a single shared package instead of each keeping its own hand-copied version — one source of truth, so the two apps can't quietly drift apart. Added a compiler guard that forces every new kind of item to be handled, so nothing can slip through unnoticed.
- The brief board's drag logic became a reusable piece. Pulled the drag-and-drop behaviour out of the board into its own self-contained hook, and made dragging one card onto another snap into place instantly rather than waiting on the server to confirm.
A second craftsmanship day: the frontend got tidier underneath and safer against silent mistakes.