Public demoKBO game companionPublic demo in 2026

Public demo in development

DUGOUT 9

A KBO fan service connecting today's game with baseball memory

After choosing a team, fans open a game room for starters, matchups, recent form, and postgame review, moving across dates rather than watching a live ticker — the dashboard is deliberately near-real-time, built on caches from five minutes to six hours. Marking a game as attended files it in a diary that works out a personal win rate and which ballparks it came from, the one part of the product built entirely from the fan's own data. Three daily games are rebuilt each day from official career records, and each screen carries the record date and a link to the official source, so no figure on it is invented; any day from the past two weeks can be replayed as practice without touching the season score. Player photographs are hidden by default, fan records are kept without an account, and a name reaches a ranking only if that fan turned a public profile on.

DUGOUT 9 is an independent fan project, not an official KBO service. Reports, fan records, and rankings now persist on a single deployment and player photographs are hidden by default, but the use of official data and club trademarks still has to be settled before anything here is called live operation.

Service development record

How today's game context and a fan's baseball memory became one flow

The product brings scattered game information and fan content into a team-first game room, then adapts the experience across pregame, live, and postgame moments while designing a reason to return.

  1. 01Observation & evidence

    What matters today and what fans remember live in different places

    Question examined
    Why must a KBO fan move across several screens to prepare for today's game?
    Decision made
    Treat schedules, player records, recent form, source-linked updates, and team memory as parts of one game experience rather than separate destinations.
    Evidence used for the decision
    Game centers, statistics, news, and club content are distributed across different sources, leaving fans to assemble the viewing context themselves.
  2. 02Problem & principle

    A team companion rather than another scoreboard

    Question examined
    What distinct value can the product offer without repeating scores and record tables?
    Decision made
    Explain what to watch from the chosen team's perspective instead of listing every number, and pair data with its source and reference time.
    Evidence used for the decision
    Connecting starters, batting order, and recent form into viewing points—and comparing them with the result afterward—created a clearer product difference than competing on breaking updates.
  3. 03Hypothesis & scope

    From choosing a team to opening today's game room

    Question examined
    Which core journey must the first public demo complete?
    Decision made
    Make team selection and the moment-aware game room the core, while team history, quizzes, and puzzles support the return loop around the game.
    Evidence used for the decision
    The first promise became ‘see today's game for my team more clearly,’ not ‘solve a large collection of baseball questions.’
  4. 04Experience & system

    A mobile data product that changes with the game

    Question examined
    How can external game data become a source-aware mobile experience that remains useful when a dependency fails?
    Decision made
    Use Next.js and TypeScript to collect and normalize data, freeze pregame reports, expose fresh and delayed states, and connect Cloudflare storage and queue boundaries with a mobile PWA experience.
    Evidence used for the decision
    Source links, refresh windows, and the D1, R2, and scheduled-collection bindings that let reports persist all sit on one deployment, and missing data is left visibly missing rather than replaced with invented figures.
  5. 05Launch & learning

    The distance between an accessible demo and an operable service

    Question examined
    What must be completed before the public demo can become a service designed to operate for the long term?
    Decision made
    Prioritize the rights question — data use, player likeness, club marks — over adding more feature breadth, and hold the product at a demo until it is answered.
    Evidence used for the decision
    Reports, fan records, and rankings now persist on a single Cloudflare deployment rather than in process memory, and player photographs were switched off by default in the product itself. What remains open is not engineering: the use of official data and club marks has not been cleared, and the product carries no external analytics by design, so no usage or conversion figure can be produced for it.
Signals used for the next decision
Current focus
A reason to return around game day
Current stage
Public demo · independent fan project
Next decision
Answer the rights question before deciding what a launch is

These are inputs for the next operating or validation decision, not outcomes already achieved.

Technology used to build it

  • Next.js
  • TypeScript
  • Cloudflare Workers
  • Game data pipeline
  • Mobile PWA

Conditions remaining before live operation

  • Review KBO data use, player likeness, and team trademark presentation before anything is called a launch
  • Decide whether search exposure should be opened or narrowed while the rights question is still open
  • Decide what a real launch would be — web alone or with an app — and what would sustain it

Change history

What changed in this service

Dated by when the change shipped in the product, not by when this page caught up. Lines are added rather than replaced, so what the service withdrew stays readable next to what it gained.

  1. Added

    Made the archive real: pick any date from the past two weeks and that day's three games open as practice, outside the season score and the streak. Before, every past date opened today's games, and today's still cannot be previewed from the archive.

  2. Added

    Added the attendance diary: mark a game you went to and the product works out your own win rate and which ballparks it came from — the one screen built from the fan's record rather than the league's.

  3. Added

    Started rebuilding the three daily games each day from official career records, with the record date and a link to the source on the screen.

  4. Added

    Showed how other fans answered a quiz question once it is over, including the wrong answer most of them picked. Nothing appears below a sample of ten.

  5. Added

    Made the public-profile switch actually do something: it is off by default, a ranking shows a private fan until it is turned on, and clearing your record now clears the server's copy too.

  6. Withdrawn

    Stopped showing player photographs by default, falling back to initials until the scope of permitted use has been established.

  7. Added

    Started building an installable Android shell on every commit. It loads the web build directly, so deploying the web updates the app — it is not listed in any store.

The question I want feedback on now

What do you check first when preparing to watch your team's game, and what would make you return after the final out?

Leave feedback