Samuel Anes

Project founder · April 2024–present

Sabacc

A real-time multiplayer web app for Sabacc, a rules-heavy card game. I built the first versions alone, then led a team across the country. It has served 1,000+ users.

Live at sabacc.samuelanes.com

Svelte · Flask · SQL · WebSockets

Architecture

Flask owns game logic and the database. Svelte compiles the UI and keeps the table reactive. WebSockets stay open during a hand so updates are not polled. I first hosted it on a Raspberry Pi, then moved it to the cloud.

The first version was one variant and two players. Three variants share a parent on the backend so a new ruleset does not fork the whole server. The database went SQLite → Postgres (custom types for the OOP models) → SQLite again when cloud hosting and collaboration got simpler. Light/dark and card themes live in cookies so customization does not hit the server.

What I would point at

The useful decisions were WebSockets for live state, a shared object model for variants, and being willing to migrate the database twice. The UI went from a two-seat table to a full layout with a mobile theme.

sabacc.samuelanes.com