Presence that leaves no trace.

Live reactions, polls and Q&A for your talk, and a one-line widget that shows who is reading your page. Browsers connect to each other directly, so there is no account to make and nothing is kept once everyone leaves.

Connecting to this pane…

Two tools on one small core.

The room

For talks, classes and meetings. Your screen shows a QR code; the audience joins on their phones and sends reactions, votes in your polls and asks questions others can upvote. You stay the only one who can open a poll or publish a result.

  • One click to create, nothing to install
  • Polls with two to four options, live bars
  • Q&A sorted by votes, mark answered, hide
  • Press F for a clean projector view
Create a room

The widget

For blogs, docs and any static page. Paste one tag and readers see how many people are on the page with them, can send a reaction everyone sees float by, and spot where the others are in the text. Alone on the page, it stays quiet.

  • One <script> tag, no build, no key
  • Shadow DOM: your CSS and ours never meet
  • One room per page, the URL is hashed
  • Fails silently if a network blocks it
Get the snippet
How peers connect Two browsers find each other through public Nostr relays, then exchange everything directly over WebRTC. public Nostr relays your browser theirs reactions, votes, questions: direct, WebRTC introductions only
Public Nostr relays only introduce browsers to each other, through Trystero. After that, every reaction, vote and question goes browser to browser. In a room, the presenter's browser holds a key pair: the room address is a hash of the public key and every poll and result is signed, so nobody else can speak for the room.

Put it on your page.

Choose the reactions and the corner, then paste the tag anywhere in your HTML. It works with or without type="module", and it is running on this page right now: open a second tab and watch the corner.

Reactions
Corner
Reading positions

        
      

What it can't do.

Without a server, nothing catches a failed connection or a cheater. These are the trade-offs of the approach, stated up front.

Peers see each other's IP address
WebRTC connects browsers directly, so everyone in a room or on a page can see the others' IP addresses. On a professional site, tell your readers; this counts as personal data under GDPR.
A few dozen people, not five hundred
Every peer connects to every other. Thirty people means 435 connections, and phones start to struggle past a few dozen. Good for a meetup or a class, wrong for a keynote.
Some connections fail
Without a TURN relay, strict NATs and some corporate, school or mobile networks block direct connections. Expect roughly one person in ten to stay on "Connecting".
Nothing is kept
When everyone leaves, it is gone. On a quiet site the widget is mostly alone and stays hidden. The presenter's browser saves the room state locally so a reload doesn't wipe it.
Votes can be gamed
Reactions and votes are anonymous. Someone determined can reconnect and vote again. Rate limits slow abuse down; they don't stop it. Don't use it for a vote that matters.
Relays belong to others
Signaling uses public Nostr relays run by third parties. Several are tried at once, but they can be slow or go away.