Project

About CS2 Replays

A free, browser-based tool for watching and analysing CS2 demo files. No install needed — a local demo is parsed entirely in your browser with nothing uploaded, and signing in with Steam or FACEIT is optional, only needed if you want automatic match sync.

What It Is

CS2 Replays is a web application for watching Counter-Strike 2 demo files round by round. You can see every player's position on the map in real time, track grenade trajectories, watch kill events unfold, and review match and player statistics — all from your browser.

It supports all active duty maps, works with demos from any platform (Matchmaking, FACEIT, ESEA, LAN), and can share replays as a link that anyone can open — including on mobile.

Beyond dropping a local file, you can sign in with Steam or FACEIT to sync your match history automatically — no manual downloading and dropping required — or browse the Pro Match Library, a hand-curated set of professional and tournament matches you can watch immediately with no account at all. A premium 3D replay viewer is also available in beta, currently covering Dust2.

How It Works

When you drop a .dem or .dem.bz2 file onto the page, it is parsed entirely in your browser using WebAssembly — a near-native execution environment built into every modern browser. The parsing engine is a Rust crate forked from demoparser2, compiled to WASM and run in a Web Worker on your machine — there is no server round-trip to watch a local demo.

A locally-dropped demo file never has to leave your device to be watched — nothing is uploaded for that flow. Data only reaches our servers when you choose a feature that requires it: clicking Share uploads the parsed replay data (not the raw .dem file) so others can view it, signing in with Steam or FACEIT stores your ID and synced match history so it can be fetched again later, and the Pro Match Library is itself server-hosted content, curated ahead of time from public sources. See the Privacy Policy for exactly what's stored and for how long.

Once parsed, the viewer renders player positions and game events on Valve's official radar images using the same coordinate transform CS2 uses internally, giving pixel-accurate positioning at full 64-tick resolution.

Tech Stack

FrontendVanilla JS + Canvas 2D
ParsingRust → WASM (demoparser2 fork)
3D RenderingThree.js (WebGL, beta)
HostingCloudflare Pages
DatabaseCloudflare D1 (SQLite)
StorageCloudflare R2 (demos, shared replays)
AuthSteam OpenID + FACEIT OAuth

No framework, no bundler, no build step. The entire site is static HTML, CSS, and JS files served directly from Cloudflare's edge network.

Privacy First

The core design principle is that your replay data stays yours by default, and only leaves your device when you choose a feature that needs it. A locally-dropped demo file is parsed entirely client-side. Steam and FACEIT sign-in each store only your account ID and public name — no passwords, no payment details — to associate synced match history with you. Analytics are handled by Cloudflare Web Analytics, which is cookie-free and anonymous.

The site carries Google AdSense display ads to keep the viewer free. See the Privacy Policy for full details on data handling, including exactly what's stored for Share links, Steam/FACEIT sync, and the Pro Match Library.

Why It Exists

CS2's built-in replay system requires launching the game, waiting for the demo to download through Steam, and navigating a clunky in-game UI. CS2 Replays is designed to be instant — drop a file, get a clean overhead view in seconds, share it with a link. Useful for post-match reviews, coach feedback, and quick clip analysis without loading the game.

Feedback or questions?

Reach out at [email protected] or open an issue on the project. Bug reports and feature requests are welcome.