Pixel war
Pick a team and paint. The territory standings move with every pixel, in every window.
pixels → team_territoryPlay Pixel warThings built on eddy
Every game here keeps its state in eddy and nowhere else. Open one, send the link to a friend or open it in a second window, and watch both screens change together.

Pick a team and paint. The territory standings move with every pixel, in every window.
pixels → team_territoryPlay Pixel warAsk and upvote. The ranked list reorders for the whole room as the votes land.
questions, votes → question_votesPlay Live Q&AA small Catan against friends or bots. Your hand is a view only you can read.
buildings, ledger → hands, scoresPlay SettlersA team board with live insights and a slider that reads any moment of its past.
cards, card_events → lane_statsComing to the playground soon
The app writes rows with Drizzle over eddy’s Postgres wire, like any Postgres database.
Each screen is a SQL view. eddy updates it from the change alone, without rerunning the query.
Browsers subscribe to the views with a token that only reaches their own room’s rows.
the pixel war scoreboardCREATE MATERIALIZED VIEW team_territory AS
SELECT canvas_id, team, count(*) AS pixels
FROM pixels
GROUP BY canvas_id, team;