🐝 Open source · Self-hosted

Online assessments
on your own terms

Build rich tests with audio, video, formulas, and images. Auto-score results, review open answers, and keep every byte of data on your own server.

⬇ Self-host in minutes Read the docs
⚡ One-command install 🔒 No data leaves your server 🌍 Multi-tenant 📄 GNU GPL v3

Everything you need to run serious assessments

From a simple multiple-choice quiz to a timed spelling bee with audio — QuizBuilder handles it all.

📝

Rich question editor

Build questions with bold text, headings, lists, LaTeX formulas (via KaTeX), images, audio, and video — all in one editor.

🔊

Audio & video blocks

Upload MP3 or MP4 files per block. Each question group can have a shared audio clip — perfect for spelling bees and listening comprehension.

Instant auto-scoring

Multiple choice, true/false, multiple select, and short-text questions are scored automatically on submission.

👤

Manual review

Open answers — essays, free text — are flagged for reviewer grading. Reviewers assign scores and leave comments.

🎲

Random draw tests

Set a draw count and each taker gets a different random subset of questions from your pool. Seeded by session for reproducibility.

🔗

Shareable links & access codes

Publish via open link, registered users, or one-time access codes. Each test gets its own unique URL.

Timed sessions

Set a time limit per test. Sessions expire automatically and auto-save protects answers as the taker works.

🏢

Multi-tenant

Run multiple organisations on one instance. All data is fully isolated per tenant — users, tests, questions, and media files.

📤

Import & export

Export tests as JSON or ZIP bundles (with media). Import via JSON, ZIP, or CSV spreadsheet. Share tests between schools or teams.

📋

One-click test clone

Duplicate any test — questions, settings, and blocks — as an independent copy. Great for versioning exams or creating variants.

🎯

Partial credit scoring

Multiple-select questions can award proportional points for partially correct answers, or stick to all-or-nothing — configurable per test.

📅

Availability windows

Set an open date and a close date on any test. Takers who try outside the window get a clear message — no manual toggling needed.

The right type for every question

Mix and match question types within the same test. Every type supports rich content in the prompt.

Multiple choice
Multiple select
True / false
Short text (auto)
Short text (review)
Long text / essay
File upload
Audio prompt
Video prompt
Reading passage
Divider
Auto-scored Manual review Informational

Built for a wide range of assessments

🐝 Spelling bees

Upload one audio clip per word. Takers hear the word and type the answer — auto-scored instantly.

🎓 Academic exams

Timed, proctored or self-paced. Mix auto-scored and essay questions. Export results as CSV.

🗣 Language proficiency

Listening comprehension with audio blocks. Reading passages with follow-up questions.

🏢 HR assessments

Candidate evaluations with access codes. Anonymous or identified. Reviewer grading for open answers.

🧠 Certification tests

Configurable passing score. Multiple attempt limits. Show or hide correct answers after submission.

📐 Technical quizzes

LaTeX formula rendering (KaTeX). Code blocks in prompts. Image attachments for diagrams.

See it in action — step-by-step examples

Learn how to build a spelling bee three different ways: import a JSON file, run the Python script, or let an AI generate the test for you.

📥 Import JSON 📊 CSV import 🐍 Python script 🤖 AI-generated 📋 Copy-paste agent prompt
View all examples →

Up and running in minutes

No cloud dependency. No per-seat pricing. Your data stays on your server.

1

Clone the repository

Download QuizBuilder with Git — or grab the ZIP from GitHub. You'll need Docker and Python 3 installed first.

2

Run the installer

One command sets up passwords, generates security keys, and starts the server. Just answer two prompts.

3

Build your first test

Log in with your admin account and start creating tests. Publish and share the link — done.

# Clone the repository
git clone https://github.com/mnavas/quizbuilder
cd quizbuilder

# Install, configure, and start — one command does it all
# Mac / Linux:
./quizbuilder install
# Windows:
quizbuilder install

# Open the admin panel
http://localhost:3000

Practice offline on Android

The QuizBuilder app lets students practice any test bundle without internet access. Download a bundle once via QR code or file import — then study anywhere, anytime.

📶
Fully offline
Audio & media stored on device
📷
QR import
Scan & download from your server
📂
File import
Load ZIP bundles without a server
🎲
Random draw
Random subset every session
⬇ Download APK — Android Learn more & example bundles →

Need help getting started?

QuizBuilder is free to self-host. If you need setup assistance, custom development, or ongoing support — we offer paid services to get you running fast.

Setup & deployment

One-time · fixed fee

I'll deploy QuizBuilder on your server, configure nginx and TLS, set up backups, and hand you a fully working instance ready to use.

  • Server provisioning guidance
  • Docker Compose + nginx setup
  • TLS certificate (Let's Encrypt)
  • Admin account configured
  • Backup schedule configured
Contact me →

Custom development

Hourly or project-based

Need a feature that isn't there yet? Custom question types, white-labelling, integrations, or anything else — I can build it.

  • Custom question types
  • White-label & branding
  • API integrations
  • Performance & scaling work
Let's talk →

Keep QuizBuilder free and actively maintained

QuizBuilder is built and maintained as a side project. It's free and open source — but hosting, development tools, and time all have a real cost.

If QuizBuilder saves you time or money, consider sponsoring the project. Every contribution helps keep it maintained, documented, and improving.

All contributions go directly to the developer. No VC, no company behind this.

📄 GNU General Public License v3.0

Free and open source

QuizBuilder is released under the GNU GPL v3. Use it, study it, modify it, and share it freely — as long as you keep it open. No vendor lock-in, no usage fees, no telemetry.

View on GitHub →