Reactions
One-tap anonymous emoji feedback with real Proof-of-Work per click. No identity, no cookies, no moderation — just engagement that is expensive to spam.
How did you like this article? (try clicking)
Fully interactive preview — click an emoji: the count bumps and the bars re-balance live.
Everything included
- Three modes — comments + reactions together, comments only, or a standalone reactions bar (
data-reactions-only) anywhere on the page. - Reactions position —
data-reactions-position="top|bottom"places the whole bar together, above or below the comments. - Choose your emoji — per widget (
data-reactions="👍,❤️,🎉") and a server allowlist (REACTION_OPTIONS). - Escalating difficulty — the more reactions an article gets, the harder each new click becomes (base → ceiling).
- Rate limits + minimum interval — per-article backstop on top of the PoW.
- Fully themeable — dark mode, accent colors, radius, fonts — same design tokens as the whole widget.
- Aggregates only — the API exposes counts, never per-visitor data.
Security & privacy
- Anti-stuffing by cost, not identity — every reaction solves a single-use Proof-of-Work; the server never knows who reacted.
- Atomic anti-replay — one challenge, one reaction, exactly.
- Anonymous events — a reaction row is {article, emoji, timestamp}. No user id, no IP, no cookie, no fingerprint.
- Honest limit — a determined person can react repeatedly (each time paying the PoW); repeated votes by the same person are not detectable by design.