# Conf Quiz

Conf Quiz runs a PDF presentation and anonymous audience questions on the same timeline. A question appears immediately after its configured slide; when it is finished, the presenter continues with the next page.

The speaker uses a local presenter view. Attendees use a static site on their phones, usually hosted on GitHub Pages. Firebase carries room state, responses, and published results between the two.


# What it is for

Conf Quiz is designed for conference talks, workshops, and community sessions where the speaker wants feedback without turning the room into a competition. It has no accounts, points, or leaderboard.

You can:

- poll the room with choice, range, rating, number, and ranking questions;
- collect free text and word-cloud responses with presenter moderation;
- mark a question as having a correct answer, then reveal it without awarding points;
- decide whether attendees see results live, after voting closes, after the reveal, or never;
- let each attendee switch independently between the light and dark interface;
- share the current PDF page to attendee devices; and
- restart or replace a room from the presenter computer.


# How a presentation runs

1.  Prepare a PDF and a `quiz.yml` file.
2.  Rehearse both screens with `confquiz preview`.
3.  Export and publish the attendee site.
4.  Start `confquiz present` on the speaker computer.
5.  Show the QR code when the audience is ready to join.

The presenter service is not deployed. It uses Firebase Admin credentials on the speaker's computer and sends only attendee-safe data to Firestore.


# Start here

- [Install Conf Quiz](user-guide/installation.html)
- [Build your first quiz](user-guide/first-quiz.html)
- [Configure Firebase](user-guide/firebase-setup.html)
- [Publish the attendee site](user-guide/deploy-attendee-site.html)

> **Note: Note**
>
> The local preview does not need Firebase. Use it while writing questions and checking the slide order.


### Links

[View on PyPI![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogLTAuMDVlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXRvcDogMC4xZW07IiB2aWV3Ym94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik03IDdoMTB2MTAiIC8+PHBhdGggZD0iTTcgMTcgMTcgNyIgLz48L3N2Zz4=)](https://pypi.org/project/conf-quiz/)\
[Browse source code![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogLTAuMDVlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXRvcDogMC4xZW07IiB2aWV3Ym94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik03IDdoMTB2MTAiIC8+PHBhdGggZD0iTTcgMTcgMTcgNyIgLz48L3N2Zz4=)](https://github.com/adarshdigievo/conf-quiz)\
[Issues![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogLTAuMDVlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXRvcDogMC4xZW07IiB2aWV3Ym94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik03IDdoMTB2MTAiIC8+PHBhdGggZD0iTTcgMTcgMTcgNyIgLz48L3N2Zz4=)](https://github.com/adarshdigievo/conf-quiz/issues)\


### AI / Agents

[Skills<img src="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iZ2Qtc3BhcmtsZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMC44NWVtIiBoZWlnaHQ9IjAuODVlbSIgdmlld2JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogLTAuMWVtOyBtYXJnaW4tbGVmdDogMC4yNWVtOyI+PHBhdGggZD0iTTkuOTM3IDE1LjVBMiAyIDAgMCAwIDguNSAxNC4wNjNsLTYuMTM1LTEuNTgyYS41LjUgMCAwIDEgMC0uOTYyTDguNSA5LjkzNkEyIDIgMCAwIDAgOS45MzcgOC41bDEuNTgyLTYuMTM1YS41LjUgMCAwIDEgLjk2MyAwTDE0LjA2MyA4LjVBMiAyIDAgMCAwIDE1LjUgOS45MzdsNi4xMzUgMS41ODJhLjUuNSAwIDAgMSAwIC45NjNMMTUuNSAxNC4wNjNhMiAyIDAgMCAwLTEuNDM3IDEuNDM3bC0xLjU4MiA2LjEzNWEuNS41IDAgMCAxLS45NjMgMHoiIC8+PHBhdGggZD0iTTIwIDN2NCIgLz48cGF0aCBkPSJNMjIgNWgtNCIgLz48L3N2Zz4=" class="gd-sparkle" />](skills.md)\
[llms.txt](llms.txt)\
[llms-full.txt](llms-full.txt)\


### Developers


**Adarsh**

<span style="margin-top: -0.15em; display: block;"> </span>

Maintainer

<span style="margin-top: -0.15em; display: block;">[](https://github.com/adarshdigievo "GitHub")</span>


### Community

[Full license](./license.html) <span class="gd-spdx-badge" title="MIT License">MIT</span>\


### Meta

**Requires:** Python `>=3.10`\
**Provides-Extra:** `dev`\
[Package Info](package-info.md)
