Repository navigation
The first stable 1.0. Everything the app set out to be is here, playtested, and shipping. TriviaCON is a portable desktop app for running live trivia quiz nights: the host drives the game from a control panel while the audience watches a separate game screen (projector / TV / second monitor). One machine, two displays, no networking — and it leaves zero trace on the host.
This is the direct successor to 1.0.0-rc.1, with the final round of polish, fixes, and two host-requested touches folded in.
🎛️ What TriviaCON does — the 1.0 baseline
Authoring
- Quizzes organised into categories with three question types: single-answer, multiple-choice (exactly one correct), and list (per-item reveal).
- Rich text (bold / italic / underline) in question text and answer options; plain-text category names.
- Host-only notes per question — private anecdotes / fact-checks that never reach the audience.
- One media file per slot (a question slot and an answer slot), each an image, audio, or video; an audio-only toggle hides video and shows a frequency visualiser when footage would give the answer away.
- Optional per-question timer.
- A splash / lobby screen with image or video plus an optional separate soundtrack, with mute / loop / grow-to-fill.
Running the show
- Phases (Splash → Categories → Questions → Question → Ranking) are jump-anywhere — the host is never forced into a sequence.
- Two-step reveal: preview a question in the control panel, then push it to the game screen.
- Manual scoring throughout — the app never auto-scores. Whole points and half points.
- Teams with drag-reorder, an order lock, and a round counter held in authoritative game state.
- An explicit "Start game" marker and a "Finish Quiz" reveal that lights up medals, a configurable fanfare, and fireworks.
- Two-zone final ranking: podium ties split into distinct medals via a per-team tiebreaker sub-score; below-podium ties stack cleanly. The full rundown persists in the saved file.
Under the hood
- Portable, single-file
.tcqquizzes (ZIP archive, schema v2) with UUID-managed media. - Portable by design — settings and temp dirs prefer the exe-adjacent directory; nothing left behind.
- Fully localisable — ships Polish and English; adding a language is just another locale file.
- Ten control-panel themes plus a System (OS light/dark) option.
- Cross-platform: Linux (AppImage), Windows (zip), macOS (x64 + arm64 zips).
✨ Since the 1.0 Release Candidate
The final polish pass, mostly in the control panel and runner.
- Half points, and a runner that holds its shape — each team row gets
-½/+½beside the score (halves accumulate exactly, tie comparisons still hold), and long team names now clip with a hover tooltip instead of shoving the score buttons out of the row. — Rafał Zając (@ZBager), #90 - Duplicate-team-id fix — adding a team to a quiz whose ids the app didn't mint itself (e.g. the demo quiz's UUIDs) handed every new team the same id, so edits, scores, and deletes landed on the wrong team. The id counter is now derived safely. — Rafał Zając (@ZBager), #89
- Control-panel polish — toggles now read as state (the "inverted splash mute" report), the action bar picks up themed semantic colours instead of hardcoded greens, and the seams between the panel's rules are closed; a media-transport and splash-toggle fix rode along. — Rafał Zając (@ZBager), #86
- Demo quiz — one
.tcqthat tours every implemented feature: a friendly "try it out" for newcomers and a complete smoke-test fixture for us. — Rafał Zając (@ZBager), #88 · closes issue #75 (Marcin Jędrecki, @alucard87pl) - Docs — theme-token and toggle conventions recorded in
CLAUDE.md; architecture tree and test list refreshed. — Rafał Zając (@ZBager), #87, #74
Already in the Release Candidate (since 0.9.14)
- Game lifecycle — an explicit "Start game" marker (finalises the roster, resets to round 1) and honest control labelling; team order / lock / round moved into authoritative game state so they never silently reset. — Marcin Jędrecki (@alucard87pl), #84, #82
- Ranking & tiebreakers — tied teams stack as rows instead of a comma line, and podium ties resolve via a per-team tiebreaker sub-score persisted in the
.tcq. — Marcin Jędrecki (@alucard87pl), #81, #83 - Media typing —
.webmis now correctly classified as video (it was always treated as audio, so webm footage never displayed); the builder probes real tracks and defaults the audio-only presentation accordingly. — Marcin Jędrecki (@alucard87pl), #78 · closes issue #76 (Rafał Zając, @ZBager)) - Game-screen layout — question text, media, and answers now share vertical space adaptively. — Marcin Jędrecki (@alucard87pl), #79
- Navigation — Categories is now a global phase switch reachable from any screen. — Marcin Jędrecki (@alucard87pl), #80
- Docs — fixed a stale
difficultyreference in CONTRIBUTING. — Marcin Jędrecki (@alucard87pl), #77
🛠️ The road to 1.0 — highlights by build
The reference point future releases measure against. Attribution names the contributor(s) whose PRs made up each build.
- RC1 · 0.9.4 "NX-01" — Display rework (top bar, bigger question layout, answers pinned, audio visualiser); media controls + local preview player + audio-only toggle; the List question type with per-item reveal; TipTap rich text; PR-gate CI; SQLite dropped for the current data layer. — Marcin Jędrecki (@alucard87pl), with @Matrix89 and @KocproZ
- RC2 · 0.9.8 "NCC-1701-B — Next Tuesday" — Ranking reveal with medals, configurable fanfare, and fireworks; the four-column Game Runner with two-step reveal; team drag-reorder + lock + round counter; save feedback (green ✔ / unsaved indicator). — Marcin Jędrecki (@alucard87pl)
- 0.9.9 "Fresh Coat of Paint" — Ten control-panel themes + System; splash media rework (image/video + separate soundtrack + grow-to-fill, stored in the archive); project MIT-licensed with in-app fanfare credits. (Refresh folded in: in-game question switching, long-text/blank-line rendering, host-only Notes.) — Marcin Jędrecki (@alucard87pl)
- 0.9.11 "Batteries Included" — Critical launch-crash fix (swapped
archiver→yazl); hardened, atomic, streaming saves with live progress; answer media (a second media file revealed with the answer). (Supersedes the crashing 0.9.10 "Quicksave".) — Marcin Jędrecki (@alucard87pl) - 0.9.12 "Continuity Error" — Live-editing sync fix (stale category counts), builder category-switch fixes, auto
.tcqextension, guarded toolbar, 1080p layout tuning, auto-select of new items. — Marcin Jędrecki (@alucard87pl) - 0.9.13 "Inertial Dampener" — List-question data consistency, a drag-and-drop freeze fix (only genuinely unsafe drags blocked), multiple-choice option drag-reorder, and control-set unification with the design system. — Marcin Jędrecki (@alucard87pl)
- 0.9.14 "Engine Swap" — Electron 35 → 43 and Vite 7 / electron-vite 5; audio + visualiser restored under Chromium ≥ 142; adm-zip CVE patched (18+ deps current); last-used-directory memory; rebrand to TriviaCON + CONTRIBUTING.md. — Marcin Jędrecki (@alucard87pl) and Rafał Zając (@ZBager)
📦 Downloads
Four binaries are attached: *.AppImage (Linux), *-win.zip (Windows), *-mac-x64.zip (macOS Intel), *-mac-arm64.zip (macOS Apple Silicon). First run downloads Electron on demand (~100 MB).
🙌 Authorship & credits
- Lead & maintainer: Marcin Jędrecki (@alucard87pl)
- Contributors: Rafał Zając (@ZBager), @Matrix89, @KocproZ
- AI pair: Claude (Anthropic) — co-author on implementation plumbing, following the project's doctrine that AI does the plumbing, humans write the quiz.
Thank you to everyone who playtested the 0.9.x and RC candidates — this release is the sum of that feedback.