e30de01c86ad98144d412cee3b180dc6e239ca4e
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
P2P Poll App
A peer-to-peer polling app where users can add options and vote on them. All data syncs directly between browsers using WebRTC — no central server stores any poll data.
How It Works
- Yjs CRDTs handle shared state — concurrent edits from different peers merge automatically without conflicts
- y-webrtc establishes direct WebRTC connections between browsers (a public signaling server is used only for peer discovery)
- Each user gets a stable random ID (stored in localStorage) ensuring one vote per user per option
- Polls are identified by room name, shareable via URL
Getting Started
npm install
npm run dev
Open http://localhost:5173 in your browser. To share a specific poll, use the ?room= query parameter:
http://localhost:5173/?room=my-poll
Share this URL with others to join the same poll.
Cross-Device Testing
npm run dev -- --host
Then open http://<your-local-ip>:5173/?room=test on another device on the same network.
Tech Stack
Description