1v1 ping-pong. First to 7, win by 2.
Local — two paddles on one machine. Practice — vs the house AI. Online — private table with a 4-character code.
Match traffic is browser-to-browser (WebRTC). The host only serves the site and the handshake.
Online tables need a Postgres connection string as DATABASE_URL (Neon works). Local and Practice do not.
Signaling tables (webrtc_peers, webrtc_signals) are created on first use. No game server is required.