Apps · SponsorPulse

A room full of phones, all answering the same question.

Attendees scan a code, type a name, and they are in — no account, no app, no password. The organiser runs polls, quiz rounds and a moderated Q&A from one screen, and the sponsor gets a panel that appears when it suits the run of show.

In the room

The console

Who decides

One authority, always. Every answer, vote and upvote is addressed to the organiser's console, checked there, and broadcast back as a whole state. Attendee pages render what they are told and never compute a score — which matters, because those pages run on other people's phones and can be edited there.

So the rules live where the tally is: one answer per person, a closed segment stays closed, an option nobody offered is refused, and a per-attendee rate limit stops a script flooding the count. State travels over the channel relay rather than a peer mesh, because a room of a hundred people is not a mesh.

Pricing

What it costs

Commercial — per-event licence

Commercial, licensed per event. One organiser console, as many attendees as the room holds, and the sponsor's branding on every screen.

The lead export contains only attendees who ticked the consent box — not people who typed an email and then unticked it. That promise is made on the join screen and enforced at the export, and it is worth saying out loud on the page that sells the thing.

How it's built

The part that matters, in the open

The tally is computed from the votes the host holds, one per person. An attendee's page can ask; it cannot assert.

js/sponsorpulse-core.js
function tally(segment) {
    var counts = {};
    segment.options.forEach(function (o) { counts[o.id] = 0; });
    Object.keys(segment.votes).forEach(function (name) {
        var id = segment.votes[name];
        if (counts[id] !== undefined) counts[id]++;
    });
    return counts;
}

Taken from this app's source, not written for the page. Built on the Messaging Platform SDK.