Standing up the FA admin console
A simulated football association without an association desk quickly becomes a collection of one-off scripts. By May the stake was operational clarity: someone had to advance clocks, seed leagues, inspect users, and put the world into maintenance without SSH archaeology — and managers deserved a product that did not share chrome with that desk.
What shipped was the FA admin console as its own Angular application, backed by admin API surfaces protected by Firebase admin claims. Operators gained findability for seasons and clock controls, seeding, user lookup, queue visibility with failed-job retry, and maintenance mode, with dry-run previews on dangerous mutations so “preview, then apply” became the default posture. The same effort pushed game and admin toward shared do-* UI primitives, which sounds cosmetic until you notice how much operator error comes from inconsistent layout language. In simple terms: FA tooling improved findability and made world-level actions legible without exposing the machinery in the manager app.
The tradeoff was scope versus secrecy of process. An admin console wants to grow runbooks, queue internals, and host-specific shortcuts; a public engineering diary must refuse that invitation. We describe the surface — claim-gated tools, dry-run discipline, a settings hub that later held economy and transfer knobs — and leave procedures where they belong. The strength of a dedicated FA app is separation of concerns: managers never see operator chrome, and operators never pretend the game client is a control plane. The drawback is a second frontend to keep honest about design systems and auth.
Paths not taken included bolting admin routes into the game app behind a hidden nav item, or keeping season/seed operations as CLI-only forever. The first collapses trust boundaries in the UI; the second does not scale past a single operator who remembers the flags.
What it unlocked was tunable economy and transfer settings, suspension-rule configuration, and every later season-lifecycle action that assumes a human can preview before the world moves.