An r/place-style collaborative canvas where every pixel is placed by replying to a Bluesky post. Replies are parsed from the atproto jetstream in real time and rendered onto the canvas.
Reply to the game post with:
pixel x,y #RRGGBB
e.g. pixel 12,30 #ff00aa. The server consumes the jetstream, parses
matching replies, validates the coordinates against the canvas size, and
broadcasts the new pixel to all connected clients.
- React 19 + Vite + Tailwind v4 (client)
- Hono +
@hono/node-server(server) @skyware/jetstreamfor the firehose subscription@atcute/clientfor fetching the initial reply thread
npm install
npm run dev # client only (vite)
npm run start # build + run the production server