← All projects

Pulse — Live Ops Console

A real-time game-ops console: the world is simulated client-side and painted on canvas — high-frequency state, 60fps rendering decoupled from React, and a debounced event feed. No backend.

ReactTypeScriptCanvasReal-timeOpen live ↗Source ↗

CI CodeQL

A real-time operations console for a fictional multiplayer game — the kind of "control room" a live-ops team watches. There is no backend: the game world is simulated on the client and painted on <canvas>, so the whole thing runs as a static site on free hosting.

Live demo: https://pulse.vitaliipopov.dev · no backend, no login

It's a deliberate change of register from the rest of my portfolio (which is Contentful-heavy): this one is about real-time UI — high-frequency state, smooth 60fps canvas rendering, and keeping React out of the hot path — the kind of work I did owning the client UI of a real-time multiplayer game.

Performance

Lighthouse (PageSpeed Insights) on the live app — mobile:

Lighthouse scores — Performance 98, Accessibility 93, Best Practices 100, SEO 100

What it shows

The interesting part — architecture

Run it

npm install
npm run dev        # http://localhost:5173
npm test           # sim/RNG unit tests (node --test, no extra deps)
npm run build      # static bundle in dist/

Stack: React 18 · TypeScript · Vite · Canvas 2D. No runtime dependencies beyond React — ~50 kB gzipped.