1. Opening the books: an engineering diary for The Dugout
    prologue

    Why this diary exists, what it will cover, and what it will deliberately leave out.

  2. Week notes: clinch maths, inbox outcomes, and admin chrome
    weekly

    Mid-season standings honesty, league-outcome inbox beats, scouting knowledge on squad lists, and FA findability — with email delivery kept at the surface.

  3. Ceilings, bloom, and intake that respects the pyramid
    milestone

    Birth PA as a hard ceiling, training-primary growth with bloom scar and physical arcs, and weekly intake sampled from division and academy quality.

  4. Youth academy, U21 competitions, and finishing the Nest/Go split
    milestone

    Academy intake, U21 league and cup, eligibility and registration — plus a final Nest dedup so Go alone owns the daily tick executors.

  5. Week notes: bootstrap fan-out, dead code, and quieter surfaces
    weekly

    Club-house and route bootstraps, stale-while-revalidate, dead-code cleanup, and surface-level access hardening before youth landed.

  6. Nest as the door, not the engine room
    milestone

    After Go staging cutover, Nest drops Bull processors and cron producers — remaining the public /v1 API that enqueues while Go runs the heartbeat.

  7. Week notes: cup progression, restart safety, and seeing the workers
    weekly

    A busy mid-July week — Go observability, cup/playoff reconciliation, bracket display order, and the reliability contract landing beside them.

  8. Moving the heartbeat to Go
    milestone

    Bull-compatible Go worker and scheduler with Nest parity, then restart-safe claims, dedupe, and delivery ledgers so retries stop inventing duplicates.

  9. Narrative generation — and leaving local LLMs behind
    milestone

    Async narrative jobs with procedural fallback, then a deliberate move from in-cluster Ollama to an OpenAI-compatible cloud provider.

  10. Domestic knockout cups as a first-class competition
    milestone

    Per-nation Sunday knockout cups with progressive draws, finances, discipline, and a full game/admin surface beside the league calendar.

  11. A hybrid marketing site before apex cutover
    milestone

    A prerendered Angular marketing site with blog, SEO, and staging deploy — while apex DNS stayed deliberately deferred.

  12. Simulated broadcast and enriched commentary
    milestone

    Minute-by-minute client reveal of pre-simulated matches, plus engine commentary sequences that never perturb simulation RNG.

  13. Media, news prose, and the press layer
    milestone

    Editorial news with FM-style prose, match facts, and a press-conference modal that keeps managers in the clubhouse conversation.

  14. Playoffs, cross-tier season end, and the game-day spine
    milestone

    Ordering the daily world tick, separating match enqueue from clock advance, and shipping cross-tier playoffs that freeze the table at MD30.

  15. Transfer system v2: market, negotiation, tunable economy
    milestone

    Replacing thin listings with a market, shortlists, contract submission, windows, board fee bounds, and admin-tunable transfer economy.

  16. Standing up the FA admin console
    milestone

    Giving operators a dedicated FA app for seasons, seeding, users, and maintenance — with dry-run discipline and shared UI primitives.

  17. Auth migration and the first deploy path
    milestone

    Replacing Clerk with Firebase Auth and standing up the first Terraform-and-Actions path to a real environment.

  18. Second wind: core gameplay as a playable foundation
    milestone

    After a quiet winter, April 2026 returns with UI kit replacement and a broad landing — match pipeline, transfers, training, finances, and inbox sharing one world at last.

  19. Dusting off: dependencies, dead auth UI, and a written task list
    milestone

    October 2025’s small commit cluster was less about new features than honesty — upgrade the stack, delete what was already obsolete, and write down what still needed building.

  20. A quiet stretch (and why the log goes thin)
    weekly

    After the April–May surge, commits nearly stop — one June badge touch, then silence through summer. The gap is part of the story, not a missing chapter to invent.

  21. Clubhouse surfaces: nav, squad, and the next match
    milestone

    May 2025 turned the world skeleton into something you could click through — side navigation, squad lists, fixtures, form tabs, and a clubhouse route that made the manager’s home feel real.

  22. Wrapping the engine: Nest, a client, and the first world skeleton
    milestone

    Two weeks after the cleaned-up match engine landed, the repo exploded into API, auth, seasons, seeders, and a first Angular shell — nearly two hundred commits of scaffolding a world worth managing.

  23. Origins: sketches, principles, and a v1 worth wrapping
    prologue

    Before The Dugout was a product, it was an idea for how match simulation should feel — researched, tuned against real frequencies, paused, then rebuilt with renewed vigour.