Launch notes: what shipped in the first build
CSReplays started life as a single Python script that parsed a demo and printed a digest. Here is what made it from that script into the first real version of the product.
Where this started
CSReplays began on May 4, 2026 as a kill-shot test — could a language model, given a well-shaped digest of a CS2 demo, produce coaching that a real player would call useful? That is still the only question that matters. Everything in the product flows from it.
The first commit was a Python script and a folder of demos. The first useful output was a few hundred lines of JSON describing what happened in one match, hand-shaped enough that Claude could chew on it without hallucinating rounds that did not exist.
What is live today
The first build of the public site has the pieces a real player can actually touch:
- Steam sign-in. One click, same OpenID flow you use on any Steam-linked site. We never see a password and we never run anything on your machine.
- Demo upload. Drop a
.demfile from the CS2 Watch tab. The file goes straight from your browser to encrypted object storage; the webapp only ever sees a signed URL. - Round-by-round replay. Every match becomes a scrubbable 2D radar. Smokes, mollies, kills, bomb plants, rotates — color-coded by side, scrubbable by round, with callout overlays for every supported map.
- Trends across matches. K/D, ADR, headshot rate, side splits, map-by-map win rate, and weapon performance. They build up automatically as you upload more demos.
- The first version of the coaching report. Round-anchored. Specific. Grounded in the digest so it cannot reference rounds that did not happen.
What is half-built
A short list of things that are wired in but not finished:
- Auto-sync for Pro users. Connect Steam once and every Premier, Comp, or Wingman match shows up as a finished report 5–10 minutes after you leave the server. The plumbing is there; the polish is not. See the next post for the design.
- Learn section. Map radars with callouts and a starter set of utility lineups. Today this is read-only; the eventual version stitches your own demos into the lineup catalog so the report can say "you used the X smoke, here is the standard timing for it" instead of "you used a smoke."
- Coaching depth. The current report is a first pass. The interesting work — training the prompt against pro demos and refusing to ship anything that reads like generic LLM filler — is covered in post #3.
What is explicitly not in v1
Some things people will ask for that are deliberately out of scope right now: video clip generation, team-level analysis for all five players, real-time tracking during a live match, native mobile, and an aim-trainer integration. Each of those is a real product on its own. We would rather ship the coaching loop well first.
What to expect from this blog
Short posts. Mostly engineering. Some product. Roughly one when something real ships, not on a cadence.
If something on the site looks wrong or half-finished, it probably is — and the announcement banner at the top of the landing page is honest about that. The fix list is real, and a lot of it is already in this branch.