A stadium of opinions. One clear signal.
12VOX turns the chaos of matchday social media into structured, real-time fan democracy — live votes before, during and after the whistle, segmented by allegiance so the consensus actually means something.
Built for the ninety minutes, not the post-match autopsy
Voting windows that open and close with the match clock, segmented results, and spaces that outlive the final whistle.
Timed vote windows
Cards open at kickoff, at key events, or at half-time and lock when the clock says so. No vote is valid outside its window.
Allegiance segmentation
Rights are scoped by club and nationality. Results can be cut by fanbase, so a home crowd's verdict is never drowned out.
Live swing tracking
Watch opinion move in real time as the match turns. Momentum on a card is as interesting as the final split.
Awards & tournaments
Season-long award ballots and bracket tournaments that run alongside the fixture list, not just on matchday.
Debate threads, not pile-ons
Every vote card anchors a structured thread. Replies are tied to a position, which shapes the conversation instead of rewarding volume.
Integrity by design
One account, one vote per card. Rate limits, device signals and optional supporter verification keep brigading out of the tally.
Three windows, three different questions
Fan opinion changes as the game does. The card set should change with it.
Expectation & lineup
Predicted score, confidence in the XI, the substitution fans already want to see. Baselines set before emotion takes over.
Reaction & calls
Was that a penalty? Player of the half so far? Should the manager change shape now? Cards open on events, close on the next.
Verdict & ratings
Player ratings, turning point of the game, and how the fanbase feels about the result once the adrenaline fades.
Awards & tournaments
Goal of the month, player of the season, and knockout brackets that accumulate a real fan-consensus record over time.
Social media gives you volume. 12VOX gives you a result.
The problem isn't that fans don't have opinions. It's that nothing measures them.
The group chat & timeline
- Loudest accounts dominate; quiet majority invisible.
- No separation between home and away — rival fans skew every poll.
- Bots and brigades move results with no accountability.
- Nothing is time-bound — a vote four days later looks identical to one in stoppage time.
- No record, no history, nothing to compare across a season.
12VOX
- One fan, one vote per card — the count is the count.
- Results segmented by club and nationality, so rival noise can't erase a fanbase's view.
- Rate limits and integrity signals make coordinated brigading visible and stale.
- Time-stamped windows tied to the match clock — context is preserved, not flattened.
- A season-long consensus record fans, clubs and broadcasters can actually cite.
Engineered for velocity without runaway cost
A live match generates a burst of traffic that would bankrupt a naive per-request stack. The design absorbs that burst instead of paying for it.
- SPA · Node.js + Express
- Optimistic vote UI
- WebSocket result stream
- Offline-tolerant queue
- Match clock sync
- MongoDB vote store
- Pre-aggregated counters
- TTL-indexed live windows
- Immutable ballot log
- Read replicas for tallies
- Redis counters + pub/sub
- Idempotent vote writes
- Per-user dedupe keys
- Debounced broadcast (1s)
- Rate limit per device
- One-vote-per-card constraint
- Allegiance scoping
- Bot & brigade detection
- Audit trail on tallies
- Window open/close ledger
12vox/
├── client/ # SPA build & views
│ ├── match-centre/ # live vote card components
│ └── socket-client/ # result stream + clock sync
├── server/
│ ├── routes/ # REST: matches, cards, votes
│ ├── sockets/ # live tally broadcast
│ ├── jobs/ # window open/close scheduler
│ └── middleware/ # auth, rate limit, integrity
├── models/
│ ├── Match.js
│ ├── VoteCard.js
│ └── Ballot.js # unique index: (user, card)
├── aggregation/
│ ├── counters.js # hot-path increments
│ └── snapshots.js # post-match rollups
└── config/
└── redis.js # counters + pub/sub
Spaces that outlive the final whistle
Not everything worth deciding happens in ninety minutes.
Player of the season
A season-long ballot that accumulates a real fan verdict, weighted per fixture.
Goal of the month
Shortlists fans argue about properly, with a head-to-head bracket instead of a reply thread.
Tournament brackets
Knockout votes that mirror the real competition, one round at a time.
Fan consensus archive
Every closed card becomes a permanent, citable record of what supporters actually thought.
Straight answers
How do you keep one fan from voting ten times?
What stops rival fans from skewing my club's results?
How does this stay affordable during a big match?
Can votes be changed once cast?
Is this official or affiliated with a league?
What's the biggest risk to a platform like this?
About this demo
This is a product concept and interface demonstration. The match, teams, and every vote tally shown are simulated in your browser — no backend is connected and no real fan data exists.
12VOX measures supporter opinion only. It is not affiliated with any club, league or governing body, and nothing here influences official sporting outcomes.