Self-contained example: duplicated contract and game logic, @hono/node-server with @hono/node-ws and sockaHonoNodeWs, WebSocket route /ws/:roomId, and a browser client built with bun build --target=browser.
bun install
bun run devDefault HTTP port is 3462 (distinct from the Bun and DO examples in this repo). Open http://localhost:3462 or set PORT when starting the server. Use two tabs with the same room id to play.
dev— buildpublic/client.js, then run the server with--watchstart— build client, then run oncebuild:client— emitpublic/client.jstypecheck—tsgooversrc/
See socka, Getting started (pick your stack), and the documentation hub.