Skip to content
IdeaZen

Real-time polling app

intermediate3 weeksNode.jsReactTypeScript

Create a poll, share a link, and watch votes update live for everyone in the room.

Why build it

WebSockets, shared state and abuse prevention in a product small enough to understand fully.

Features

  • Create a poll with 2 to 8 options
  • Shareable link
  • Live vote counts over WebSockets
  • One vote per browser
  • Poll closes automatically

Roadmap

  1. p1

    Server

    • Express or Fastify server with a poll store
    • REST endpoints to create and read polls
    • Validate all input with zod
  2. p2

    Realtime

    • Add WebSocket rooms per poll
    • Broadcast vote changes
    • Reconnect with backoff on the client
  3. p3

    Fair voting

    • Enforce one vote per browser with a cookie token
    • Rate limit votes per IP
    • Explain the limits honestly in the UI
  4. p4

    Ship

    • Persist polls to Postgres or SQLite
    • Load test with 200 simulated clients
    • Deploy to a host that supports WebSockets

Common pitfalls

  • Trusting vote counts sent by the client
  • Choosing a serverless host that cannot hold WebSocket connections

Skills you will practise

  • WebSockets
  • Input validation
  • Rate limiting
  • Load testing

More ideas

All 13 ideas · Intermediate developers