30 Days of Vibe Coding - Day 22 - LiveQ&A
A real-time Q&A board for events, AMAs, and talks, with live upvoting and host controls, built with Firebase Firestore.
A real-time Q&A board for events, AMAs, and talks, with live upvoting and host controls, built with Firebase Firestore.
Day 22. I've been to enough events where the Q&A is a mess. People shouting over each other, the same question getting asked twice, the best questions buried under the loudest voices. Time to build something better.
The Prompt
> "Build a live Q&A board where a host creates a session, the audience submits and upvotes questions in real-time, and the host can highlight, answer, dismiss, or close the session. Include a share modal with a QR code."
Try it out yourself here
How It Was Built
This one went through 7 Watchfire tasks, building up from the database layer to the final polish:
1. Firebase Firestore setup. The data layer. Sessions and questions collections, anonymous auth so users can jump in without creating an account, and security rules to keep things locked down.
2. Session creation. A host fills in a title and description, hits create, and gets a unique session page. Simple form, nothing fancy.
3. Question submission. Audience members land on the session page and submit questions. 280-character limit to keep things focused. Questions appear in real-time for everyone in the session.
4. Real-time upvoting. One vote per user per question, enforced server-side. Vote counts update live across all connected clients. Sort by most upvoted or newest.
5. Host controls. The host gets extra buttons on each question: highlight, mark as answered, dismiss. Highlighted questions get promoted to a dedicated panel on the right side of the screen. The host can also close the session entirely.
6. Share modal with QR code. A share button opens a modal with the session link, a copy button, and a QR code generated with qrcode.react. Point your phone at the screen and you are in.
7. UI polish. Cleaning up the layout, refining the two-column design, making sure the highlighted question panel looks right on both desktop and mobile.
What I Got
Clean landing page. Create a session or paste an existing session code to join one. Anonymous auth happens behind the scenes, so users just pick a display name and go.
No sign-up friction. First visit triggers a display name prompt. That is it. Firebase anonymous auth handles the rest. No emails, no passwords, no OAuth flows. For a live event tool, this is exactly right. You do not want people fumbling with account creation when the speaker just said "scan the QR code."
...
---
Read the full article →

Add a comment: