Open source · AGPL-3.0

An open-source quiz platform you can read, run and change

Every part of Buzrr — the website, the real-time game server and the AI service — is public on GitHub. Use the hosted version at buzrr.in, or take the code and run it yourself.

Is Buzrr open source?

Yes. Buzrr is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). The complete source is at github.com/buzrr/buzrr. You can use, study, modify and share it; if you distribute a modified version, or run one as a network service that others use, you must make its source available under the same license. The license text has the details.

What is Buzrr?

Buzrr is an open-source quiz platform that runs in the browser. A host builds a multiple-choice quiz — by hand or with AI — and opens a live room; players join from their own phones or laptops with a 6-character code, a link or a QR code, without creating an account. Signed-in users can also play ranked 1v1 quiz battles. Buzrr is licensed under AGPL-3.0, so anyone can read the code or run their own instance.

What's in the repository

A Turborepo monorepo with Yarn 4 workspaces. The Python service is optional; the rest is TypeScript.

Buzrr repository layout
PathStackWhat it does
apps/webNext.js 15, React 19The website and every screen — host, player and duel. Also hosts sign-in (Better Auth with Google).
apps/serverNestJS 11, Socket.IOREST API, the WebSocket gateway and the game engine that runs every timer, phase change and score.
apps/aiPython 3.12, FastAPI, arqOptional. Knowledge Spaces: document ingestion, pgvector retrieval and cited question generation.
packages/prismaPrisma, PostgreSQLThe database schema, migrations and the shared client.

How the game engine is built

The design decisions that make a live quiz fair, from the repository's ARCHITECTURE.md.

The server owns the game

Clients only send intent — start, next, submit answer. Timing, phase transitions and scoring all happen on the server, so a slow or modified client can't bend the rules.

The server owns the clock

Answer time is measured by the server from when the question opened, and deadlines go to clients as durations, so device clock drift doesn't change anyone's score.

Live state in Redis, results in Postgres

A running game lives in Redis. Postgres only stores the room record and the finished result, keeping the database out of the hot path.

Built for more than one server

Socket.IO uses the Redis adapter, and each game's timers are owned through a Redis lock, so several server instances can run side by side.

Read the full write-up in ARCHITECTURE.md on GitHub.

What the open-source code gives you

  • Live hosted quiz rooms

    The host runs the room from one screen and moves it along question by question. Players join with a 6-character room code, a join link or a QR code.

  • Ranked 1v1 quiz battles

    Seven questions against one opponent, matched by ELO rating. If nobody near your rating is queuing, you get a bot opponent instead of an empty wait.

  • AI quiz generation

    Describe a topic and Buzrr drafts up to 15 multiple-choice questions with Google Gemini. Edit anything before you host.

  • Quizzes from your documents

    Upload PDF, DOCX, TXT or Markdown files to an AI Knowledge Space. Generated questions cite the passage they came from, and you export the ones you keep into a quiz.

  • Speed-based scoring

    A correct answer earns up to 1,000 points, sliding to 100 at the time limit; wrong answers score 0. Answer time is measured on the server, not on the player's device.

  • Self-hostable

    Run your own instance on your own infrastructure. Self-hosted instances run with billing off and Pro limits.

Open source and Buzrr Pro

  • The hosted version at buzrr.in has a free plan and an optional Pro subscription. Pro pays for the hosted infrastructure.
  • Billing is switched off unless an instance sets BILLING=ON. Self-hosted instances run without a payment provider, and every account gets Pro limits.
  • Nothing is held back from the repository: the billing code is in it too, behind that switch.

Contributing

  • Fork the repo, branch off main and open a pull request — the steps are in CONTRIBUTING.md.
  • Commits follow Conventional Commits (feat:, fix:, docs:…). A pre-commit hook runs lint and type checks.
  • Architecture docs and decision records live in the repo, so you can see why things are built the way they are before changing them.
  • Bugs and ideas go to GitHub issues.

Want to run it rather than change it? See how to self-host Buzrr.

Looking for an open-source alternative?

What people run on it

Star it, fork it, or just play

The code is on GitHub. The hosted version is free to start.