Turn your pub quiz into a TV game show.
Write the questions in a Google Sheet, drop in your pictures and teams, and run the whole night from your laptop:
the TV shows the show, a second window gives the host the answers and the controls.
Free, nothing to install, no account. Your quizzes stay in your own browser.
Press Shift + P and a second window opens on the laptop. It runs the show: the TV follows every click, with no server in between.
![]() |
![]() |
![]() |
- Open the app and click New quiz, or start from the built-in demo.
- Questions: copy the Google Sheet template (Help → Templates), fill it in, share it as anyone with the link can view and paste the link. Help → Question types shows the exact rows for every type and what they look like on screen.
- Media: drag in your pictures, audio and video. A whole folder works.
- Scores: paste the link of your scores Sheet, or type the points into the app during the show.
- Teams: type them in, import a CSV, or load the names from the scores Sheet.
- Check, fix what it finds, and Start show.
Export a quiz as one .zip to back it up or move it to the laptop you will use on the night.
- Connect the laptop to the TV, open the quiz with Start show, drag the window to the TV and press
F11. - Press
Shift + Pand keep the host window on the laptop. - If the TV cuts off the edges, press
Shift + Con the TV window to shrink the picture.
| Key | Does |
|---|---|
Shift + P |
Open the host window |
→ / ← |
Next / previous step |
Z |
Enlarge the question's picture |
Esc |
Close the picture, or leave the current screen |
Shift + D |
Jump back to the rounds dashboard |
Shift + C |
Adjust the picture size for the TV |
The app is in English, Czech and Hungarian. It works best in Chrome or Edge.
Every quiz picks a look in its setup: Classic, Halloween, Christmas, or its own theme made in the theme editor (colours, fonts, a background picture, glows, scenery and decorations, with a live preview of every screen and a readability check). Themes can be exported, imported and kept in My themes for other quizzes.
The theme workshop (#/themes, linked from the library) shows themes other hosts shared. Anyone can submit one from the theme editor (Share to the workshop opens a GitHub form); it appears after review.
React 19 + Vite, Tailwind CSS v4, Framer Motion, Lucide icons, PapaParse and fflate. There is no backend: quizzes and media live in IndexedDB, the two windows talk over BroadcastChannel, and Google Sheets are read as CSV.
git clone git@github.com:Jakub-Kos/QuizNightWebApp.git
cd QuizNightWebApp
npm install
npm run dev # development server
npm run lint # ESLint
npm run build # production build in dist/ (checks the workshop themes first)
npm test # VitestEvery push to main deploys to GitHub Pages.
Submissions arrive as issues labelled theme, with the theme's .zip attached. A workflow (.github/workflows/theme-check.yml) checks the attached file and comments the result on the issue: whether it passes, what it contains, readability, and the exact command to add it. It updates that comment when the issue is edited.
- Look at it: download the zip and import it in any quiz's setup (Look → Import theme), then click through the show.
- Add it:
npm run workshop:add <URL of the attached .zip>(or a downloaded file). It runs the same check as the app and refuses a theme that would lose anything;--replaceupdates a theme with the same id. - Commit
public/workshop/and push. Close the issue.
Themes are plain data (colours, fonts, pictures and built-in effects, never CSS or code); the format is described at the top of src/quiz/themeFormat.js.
MIT
















