A lightweight, on-the-fly voting app for creating quick polls and sharing them with friends. It's designed for instant votes (create a poll, share a short code, friends connect and vote). There is no user signup/dashboard—participants are ephemeral and identified by short IDs encoded into short-lived JWTs.
Keep it short: create a vote, send the URL to friends, everyone connects over WebSocket and votes in real time.
- Fast, ephemeral polls
- Poll state is stored in Redis (RedisJSON). Polls are small JSON documents with participants, nominations and rankings.
- Real-time interactions use Socket.IO namespaces; HTTP endpoints are used to create polls and obtain tokens.
- Node.js + TypeScript
- NestJS (controllers, services, DI)
- Socket.IO (real-time gateway)
- ioredis + RedisJSON for poll storage
- JWT for short-lived tokens (no signup)
-
Install dependencies
npm install
-
Environment variables (example)
REDIS_HOST(e.g.localhost)REDIS_PORT(e.g.6379)JWT_SECRET(signing secret)POLL_DURATION(seconds, default ~3600)CLIENT_PORT(for CORS in dev)
-
Run in dev
npm run start:dev