puppies-checkers.png

I built a fully playable checkers game that runs 100% on the Fastly edge — no origin servers, no databases, no external infrastructure. Just Compute, KV Store, Fanout, and a browser.

What it does:

  • Real-time multiplayer checkers with server-authoritative game logic
  • Lobby chat, in-game chat, matchmaking, online presence
  • 30-second turn timer with auto-forfeit
  • Cosmetic shop (board skins, piece skins, avatars) with coin economy
  • JWT auth, input validation, and rate limiting — all at the edge

Fastly products used:

  • Compute (Rust/Wasm) — all application logic, static asset serving (frontend embedded in the Wasm binary)
  • Fanout — WebSocket connections for real-time chat, game state sync, match notifications, presence
  • KV Store — three stores for player profiles, game state, and shop catalog
  • Secret Store — JWT signing key + API token
  • Config Store — service configuration
  • Edge Rate Limiting — per-endpoint abuse protection

Built with:

  • Backend: Rust compiled to Wasm, running on Compute
  • Frontend: Preact + TypeScript + Canvas 2D, ~38KB total
  • Single Compute service handles everything — REST API, WebSocket, and static assets

Try it: https://checkers-rust.chrisbuckley.dev Source: https://github.com/chrisbuckley/fastly-serverless-checkers

The whole point is to show that Compute isn't just for caching and request routing — it can power a complete, stateful, interactive application. Open to feedback, and happy to walk through the architecture if anyone's curious. (edited)