Skip to content

Documentation

How BuniFun works

Everything the product does, written down: how a vote is counted, how a result is settled, what a leaderboard means, how reputation is earned, and — if you host — what running a session actually involves. Every number here is read from the API that enforces it, so this page cannot quietly disagree with the software.

What BuniFun is#

A place to settle the arguments you are already having.

Somebody asks a question — who had the better year, which album is the one, who takes the crown right now — and for a fixed window anyone can vote. When the window closes the result is settled once and never touched again. That frozen result is what every other number on the platform is built from.

The point is not the vote. The point is the argument around it: the chat while it is open, the reasons people give, the comments underneath when it is done, and the standings that build up over months.

Nothing on this platform is for sale that changes a number. Money can move where something is shown. It can never move what it says.

Accounts and profiles#

One account per identity, which is what stops a leaderboard being fiction.

Sign in with Google or with an email code. An account is tied to the identity behind it, and that is a deliberate anti-manipulation control rather than a convenience: a board where one person can be a hundred voters describes nothing.

Username
Your handle, used in chat and on boards. You can change it.
Display name
What appears beside your avatar. Changeable, and it is what a screen reader announces.
Reputation
Earned by taking part. See Reputation.
Personality
A description of your voting pattern — The Contrarian, The Early Bird. Entertainment, and nothing else: it is not a judgement of whether you are right.

Your profile at /u/your-username is public: your display name, avatar, reputation and badges. Your individual votes are not on it, and there is no page anywhere that lists them.

Finding something to vote on#

The home page, search, and the boards.

Live now
Sessions open for voting this minute. This is the front page.
Trending
The closest arguments with real turnout — see Trending.
Search
Subjects, sessions and creators by name.
Boards
Standing rankings — see Leaderboards.
Following
Follow a creator, a subject or a category and what they do reaches you rather than needing to be found.

If notifications are enabled on your deployment you can also be told when a session you care about opens. That is one permission prompt and we only ask it when you have chosen to follow something — a prompt on arrival costs your permission permanently and buys nothing.

How voting works#

One vote per person per session, cast while the window is open, and then locked.

  1. Open a session. You can read it signed out; voting needs an account.
  2. Pick your answer. The control acknowledges in under a tenth of a second — the result you see is your vote landing, not a guess.
  3. Optionally say why. It takes one tap and it is what makes the result readable afterwards.
  4. Watch the tally move, argue in chat, and come back when it closes.

A vote cannot be changed or withdrawn. Not by you, not by a moderator, not by an administrator — there is no endpoint that edits one and no database grant that would allow it.

That is strict on purpose. A tally you can watch move is only meaningful if what you are watching is people making up their minds rather than reacting to the score. If votes could be switched, the last minute of every session would be the only minute that mattered.

If you try to vote twice you are told you already have, and shown the ballot you cast. Signing in mid-vote carries your choice through the sign-in and commits it on the other side, so you do not lose it.

The four formats#

What kind of question is being asked.

Head to head
Two options, one winner. The default, and the one that produces the sharpest arguments.
Ranking
Up to six options, ordered by the room. You submit an order, not a single pick.
Rating out of ten
One subject, scored. These are shrunk towards the category average until enough people have voted — see the published numbers — so four tens do not outrank nine thousand nine-point-fours.
Category battle
Two subjects compared across several named dimensions at once — lyrics, delivery, consistency — rather than on one overall question.

A session also has a status. Scheduled means it has not opened yet; open means vote now; closed means settled. Two more exist and both are visible: cancelled, and invalidated — a result set aside because the voting was not honest. An invalidated session keeps its page and states the reason, because a result quietly disappearing is indistinguishable from one being hidden.

Saying why#

A tap, not an essay — and it is what makes a result mean something.

After voting you can attach one or more reasons from a fixed list appropriate to the category. They are counted, never quoted: the session page afterwards can say the room went this way mainly on consistency, which is a far better summary than the raw split.

A fixed list rather than free text, deliberately. Free text needs moderating, and a box that invites a paragraph gets a paragraph from the loudest people only.

Results, and why they never change#

Settled once, frozen, and stamped with the method that produced it.

When the window closes the result is computed once from the database and written down. Every later surface — a leaderboard, a share card, a season standing, this page — reads that frozen row. Nothing recomputes it.

Each result records the version of the scoring method that produced it. That is what lets the formula improve without rewriting history: an old result always names the rules it was settled under.

A tie leaves no winner. “Too close to call” is an honest verdict, and a better one than picking between equal counts.

Chat and comments#

Chat while it is open; comments once it is settled.

Chat
Live, during the session, in the room. Fast and disposable — it is the crowd noise, and it is where the argument actually happens.
Comments
Threaded, under a closed result, and they persist. This is where somebody explains why the room got it wrong.

Both are moderated — see Moderation. A host has controls of their own over the room they are running: slow mode, locking chat, removing a message, and timing somebody out of that session.

Leaderboards#

What a subject's standing is, and what it is not.

A subject’s position aggregates the settled results of every session it appeared in over a rolling window, with older sessions weighing progressively less. Recency matters in pop culture, but a hard cutoff would make a subject vanish overnight, so it decays smoothly instead.

That floor is the important part. Below it the number is not meaningful, and publishing it anyway invites ridicule it would deserve.

Boards exist per category and globally, and there is a separate board for people rather than subjects. A movement indicator beside a rank shows how far it has travelled since the last snapshot.

Reputation#

Earned by taking part. Never by agreeing.

Reputation is the number beside your name. You earn it by voting, by saying why, by turning up early to a session, by chatting usefully, and — if you host — by running sessions people actually attend.

Agreeing with the crowd earns nothing. Rewarding consensus would manufacture it, and destroy the signal the whole product runs on.

Most signals are capped per day, so somebody with unlimited time cannot out-earn somebody with an evening. Moderation costs you points. Nothing you can buy adds one. The full table, with the current values and caps, is in the published numbers.

The rater board ranks people by it. It is all-time and it is live — unlike a season, it has no window.

Seasons#

A window over reputation, frozen when it closes.

A season is a named period — a month, a tournament, a festival. It has no earning rules of its own: it counts the same reputation you were already earning, over its own dates.

While a season is open its board is live. When it closes the standings are frozen into a permanent record and the top finishers get a badge that names the season. That record is append-only, so a season you placed in stays placed.

Nothing depends on a season existing. If none is running, the home page simply does not show one and everything else — voting, results, leaderboards, reputation — carries on exactly as it does otherwise. Seasons are a lens on the ledger, not the ledger.

Badges#

Evidence of something you actually did.

Badges are awarded for participation milestones, for placing in a season, and for a handful of specific achievements. They appear on your profile.

Awards are append-only: a badge you earned is not taken back if the criteria later change, because the thing it records — that you did this, then — is still true.

The published numbers#

Read live from the API that enforces them, not typed into this page.

The numbers could not be loaded. They are served by the API so that they always match the running code, which means they are unavailable rather than stale when the API is.

Becoming a creator#

A creator is an account that also hosts — never a second kind of account.

You keep everything: your votes, your reputation, your badges, your profile, your place on the rater board. Hosting is something your account can now do, not somewhere else you log in.

  1. Open your settings and choose Become a creator.
  2. Pick a handle. The handle is permanent. It appears in every share of every session you ever host, and a product where it changes is one where a link stops resolving to who it named. The same sentence is on the form itself, at the only moment it matters.
  3. Add a headline and, optionally, the category you mostly work in.
  4. You now have a public page at /creator/your-handle and a private studio.

Self-signup is behind a switch on each deployment. If it is closed you will be told so rather than shown a form that fails — and staff can still make somebody a creator directly, because the switch gates self-serve, not whether creators exist.

Hosting a session#

Ask the question, set the window, and a human reads it before it opens.

  1. Go to send in a session. Anyone can do this — you do not have to be a creator.
  2. Choose a format, write the question, and give it options. A template can fill the form in one click, and everything stays editable afterwards.
  3. Set how long it runs.
  4. Send it in.

A submitted session is not live. It goes into a review queue, its page is a 404 to everybody including you, and a human decides.

That is the one thing this flow must never blur. Somebody who thinks they published a session that is actually pending will conclude the product is broken and say so somewhere we cannot answer.

Being a creator changes the path, not the standard. A creator’s submission is scheduled immediately and read shortly afterwards; a stranger’s waits for a reader first. Both get read. If yours is set aside you are told why.

You can watch everything you have sent in at your submissions.

Host Mode#

The controls you hold while your session is running.

Go live
Open the hot window — the period where you are actively running the room.
Slow mode
A minimum gap between messages, for when chat outruns reading.
Lock chat
Stop new messages without ending the session.
Remove a message
Takes it down and leaves a tombstone, so the thread still makes sense.
Timeout
Silences somebody in this session for a period. It is scoped to your room and it appears on their own record, so they can read it.
Co-hosts and moderators
Grant either to somebody so you are not doing it alone.
End early
Close the session ahead of its window. It settles immediately.

A host can shape the room. A host cannot see who voted for what, change a tally, or alter a result — there is no control for it because there is no endpoint behind it.

Calls and the stake#

Say what you think will happen, before anybody votes.

Before voting opens you can put your name on an outcome — Creator versus Audience. The call is locked before the first vote is cast and cannot be changed afterwards, which is the entire point: a prediction you can revise once the numbers move is not a prediction.

When the session settles, your call is shown against what the room actually decided. Getting it wrong in public is the product working. A creator with a visible record of calls is one whose opinion means something.

Where two creators call opposite sides, the session becomes a battle, and the report afterwards shows both calls, the result, and which audience turned up for whom.

The studio#

Your own numbers. Nobody else can see it.

The studio is where a creator finds what their sessions did: sessions finished, unique participants, the typical room size, followers, and the creator score those add up to.

Every number in the studio is a total. Individual votes are not visible to anyone, including you — they are not recorded in a form that could be shown.

That is said out loud rather than left to be inferred, because the difference between “we do not show this” and “this is not computed” is the whole basis of the claim, and a creator who assumes the first will keep looking for the setting.

What your audience thinks#

Aggregates over your own rooms, with published floors.

The studio breaks down how often the room agreed with your calls, which of your questions split it most evenly, and — per session — the reasons people gave.

Everything here is an aggregate with a minimum cohort size, and the floors are published in the response rather than applied invisibly. Below the floor you are told the cell is too small rather than shown a number that would identify somebody. A breakdown fine enough to name one person is not analytics.

Posting about a session#

Everything worth sharing, written from the frozen result.

Once a session settles, its content kit gives you ready-to-post copy per channel, built from the result, your call and the public chat. No model generates it and no new data is collected — it is a rendering of what already happened.

A moment that did not occur is named as absent rather than quietly omitted, so you are never handed a post claiming something that did not happen.

Every session also has a share card that renders from its frozen result.

Verification#

A published bar, fixed before the badge existed.

The verified mark on a creator page means BuniFun checked that this person is who they say they are, and that they have actually done the work. The criteria were set in advance: criteria written after somebody wants one are criteria written to fit them.

Your progress against each one is in your studio, showing how far along you are rather than a pass or fail — “10 of 10” tells you that you are at the line, and a tick does not. The current numbers are in the published numbers.

One criterion is not something you can earn by hosting: a person has to look. It is named rather than left implicit, so the checklist can say we do this, not you instead of showing a bar that never fills. When everything earnable is done, your studio says so — the difference between “keep going” and “waiting on us”.

Payment is not on the list and there is no way to buy one. Funding a review may be necessary; it is never sufficient. A badge that is purely purchasable stops meaning anything.

The endpoint that grants a badge refuses when a published criterion is unmet — whoever is asking. It comes back off if the identity cannot be confirmed, and that requires a reason you can read and appeal.

Events#

An evening of sessions that run to a schedule.

An event is several sessions strung together — an awards night, a match, a launch. Each question opens on its own schedule, and the event page carries a running order, a live timeline, and a recap once it has finished.

A host can advance an event by hand, and some questions are parked to be opened when the moment arrives rather than at a fixed time. You can ask to be reminded when one starts — there is a strict cap on how many notifications a single event may send you, so following an evening cannot flood your phone.

Shows#

A programme that returns on a schedule.

A show is a recurring event — every Friday, every match day. It books its own episodes ahead of time and has a page listing what has aired and what is coming.

A show composes things that already exist rather than inventing new ones: it owns no tally, no verdict and no earning rule of its own. When a programme ends it keeps its episodes and their recaps, and cannot be revived — a name returning with a run of episodes nobody expected to resume is worse than starting a new one.

Moments#

A ninety-second verdict, called in the middle of something happening.

A moment is a very short session opened on the spot — a goal, a line, a reveal. It counts towards a subject’s standing at a reduced weight, because ninety seconds of reaction is not the same evidence as a full window.

Moments are excluded from trending, and that is a stated rule rather than a surprise: a ninety-second window cannot clear the voter and network gates honestly, and a gate a whole feature systematically fails is a gate that gets “temporarily” loosened for it.

Moderation#

What gets acted on, by whom, and what happens to what you wrote.

Every message is checked against a curated blocklist as it is sent, and again afterwards by a slower pass that catches terms added since and repetition across sessions. The blocklist includes curated Pidgin, Yoruba, Igbo and Hausa terms — a filter that only understands English is a filter that does not work in our market.

Report
Anyone can report a message, a comment, a session or an account. Reports go to a queue sorted by priority.
Removal
Takes content down and leaves a tombstone, so a thread still reads.
Shadow removal
Hides a message from everybody but its author, for the borderline cases.
Timeout
Silences somebody for a period, scoped to one session or platform-wide.
Suspension or ban
Stops an account acting. See below.

A host moderates their own room; staff moderate the platform. Every staff action is recorded, and the ones with a consequence for you are recorded a second time in a place you can read.

If something happens to your account#

You are told what, why, and how to appeal.

No sanction removes a vote. A suspended or banned account keeps everything it has cast, because results other people have already seen and shared must not change underneath them.

Every sanction requires a written reason, and that reason is not a default. Whoever handles your appeal reads exactly that sentence, and a pre-filled “violation of terms” would make every record say the same nothing.

You can read the decisions made about you on your own record. A reversal is a new entry on top rather than an edit of the old one, so the history stays honest in both directions.

A creator whose hosting is revoked keeps everything else — votes, reputation, badges, and the sessions they ran, whose results are unchanged. Their page stays up carrying the reason, because nobody can appeal a decision they were never shown.

Your data and privacy#

What is public, what is private, and what is not recorded at all.

Public
Your username, display name, avatar, reputation, badges, and — if you host — your creator page and the sessions you ran.
Private
Your email. It appears to staff only on a single account they have opened deliberately, never in a list.
Never shown to anyone
Which way you voted in any particular session.

A creator’s analytics are aggregates with published minimum cohort sizes. The fan board on a creator page names people, and every person it names already carries the same number on the public rater board — it is that ledger filtered to one audience, not a new exposure.

Account deletion is not offered yet, and that is deliberate rather than an oversight: it has to reconcile with append-only votes and frozen results first, and a button that half-deletes is worse than none.

What money can and cannot do#

The line, stated plainly.

Money can move where something is shown. It can never move what a number says.

A boosted session appears in slots labelled as promoted, and is excluded from trending entirely. Nothing purchasable adds a reputation point, moves a leaderboard position, changes a result, or grants verification.

This is the claim the whole product rests on. If people believe a leaderboard can be bought, the leaderboard stops being worth reading — and so does everything built on it.

Common questions#

The ones that come up most, answered in one place.

Can I change my vote?
No. A vote cannot be changed or withdrawn by anyone — not you, not a moderator, not an administrator. There is no endpoint that edits one. A tally is only meaningful if what you are watching is people making up their minds rather than reacting to the score.
Can anyone see how I voted?
No. Individual votes are never shown to anybody, including the creator who hosted the session and including staff. Creator analytics are aggregates with published minimum cohort sizes, so a breakdown fine enough to identify one person is refused rather than displayed.
Why is my subject not on the leaderboard?
A subject needs a minimum number of settled sessions and a minimum number of votes before it appears on a public board. Below that floor the number is not meaningful. The current thresholds are published on this page, read live from the API.
How do I earn reputation?
By voting, attaching a reason to a vote, turning up early in a session's window, chatting usefully, and hosting sessions people attend. Most signals are capped per day. Agreeing with the crowd earns nothing — rewarding consensus would manufacture it.
Can I buy reputation, a leaderboard position or a verification badge?
No. Nothing purchasable adds a reputation point, moves a position, changes a result or grants verification. Money can affect where something is shown — a boosted session appears in slots labelled as promoted, and is excluded from trending entirely — and nothing else.
What does the verified mark mean?
That BuniFun checked the creator's identity, and that they met a published bar: a minimum number of finished sessions, a minimum number of distinct people who voted in them, and no upheld moderation actions in the last ninety days. The criteria were fixed before the badge existed, and the endpoint that grants one refuses when a criterion is unmet.
I sent in a session. Why can I not see it?
A submitted session is not live. It goes to a review queue and its page returns 404 to everybody, including its author, until a human approves it. You can see everything you have sent in, and its status, on your submissions page.
What happens to my votes if my account is suspended?
Nothing. No sanction removes a vote. A suspended or banned account keeps everything it has cast, because results other people have already seen and shared must not change underneath them.
Do I need an account to read a session?
No. Sessions, results, leaderboards, subject pages and creator pages are all readable signed out. An account is needed to vote, to chat, and to host.
What happens when no season is running?
Nothing breaks. The home page does not show a season strip, the seasons list is empty, and voting, results, leaderboards and reputation all carry on exactly as they do otherwise. A season is a window over the reputation ledger, not the ledger itself.
Why did a result end with no winner?
A tie leaves no winner deliberately. 'Too close to call' is an honest verdict and a better one than picking between equal counts.
What is an invalidated session?
One whose result was set aside because the voting was not honest — coordinated voting, or traffic from a single network. The session keeps its page and states the reason publicly, because a result quietly disappearing is indistinguishable from one being hidden.