--- title: "Micpass: live Q&A and polls for talks and all-hands meetings" author: "@chris" author_url: https://elements.dev/users/chris published: 2026-09-30T19:26:51.297Z url: https://elements.dev/demos/79f4km50/micpass-live-q-a-and-polls-for-talks-and-all-hands-meetings kind: post format: article --- # Micpass: live Q&A and polls for talks and all-hands meetings by [@chris](https://elements.dev/users/chris) ยท 2026-09-30 ## Description Join codes, audience questions ranked by upvotes, live polls and word clouds, and a presenter screen for the projector. Micpass needed questions, votes and poll results that move on every phone and the projector at once, moderation for the host, and an audience that joins with a code and no account. Each of those is a part of Elements, so the agent spent its 20 minutes on the Q&A app itself. **What Elements gave the app** - **Live questions, votes and polls.** Events, questions, votes, polls and answers are LiveTables, so a vote reorders the questions and a poll answer grows its bar on every phone and the projector the moment it is cast. - **Votes straight from the page.** The audience upvotes and answers polls by writing to the live tables, and the server checks each write: one vote per question, one answer per poll, only on a live question or an open poll. - **Moderation.** Only the event's host approves, hides, pins or marks a question answered, and a moderated event holds new questions until the host approves them. - **Server calls as function calls.** Creating an event mints a short join code, joining turns a typed code into the event page, and asking a question is one more `@rpc` call. - **An audience with no account.** Each browser keeps its own voter id, which the server uses to count one vote per person. - **Data from SQL files.** Migrations define the app and seed a host and one event with 13 questions, 167 votes, two finished polls and a draft poll ready to open. **What the project server gave the agent** The project server runs alongside the agent and answers as soon as a file is saved: it type-checks the templates, TypeScript and SQL, applies migrations and reruns the tests, so every question came back right away and the agent kept building. **What shipped** The app type-checks with zero errors and all 49 tests pass. Every page works on desktop and phone.