SpeakerQueue: Real-Time Speaking Queue Management

A lightweight web application for managing speaking requests during moderated meetings.

Johannes Rauschenberger

Johannes Rauschenberger


SpeakerQueue is a lightweight, browser-based web application for managing speaking requests during moderated meetings. It was originally developed to support university senate meetings, where keeping track of speaking requests manually had become cumbersome and occasionally distracting.

SpeakerQueue landing page
The landing page where a meeting host creates a new meeting.

The Problem

The objective was not to create another video conferencing platform. Many of these meetings either take place in person or in a hybrid format anyway. SpeakerQueue was designed to solve one specific problem well: managing speaking requests in an organised, unobtrusive and intuitive way.

In meetings with many participants, handwritten notes or memory quickly become unreliable. The chair needs a simple way to see who wishes to speak, who is currently speaking, and who should be called next.

Design Constraints

Functional Goals

  • Browser-based
  • No installation required
  • Mobile-friendly
  • Real-time synchronisation
  • Simple enough for non-technical users

Technical Goals

  • No database
  • No authentication for the MVP
  • No paid infrastructure
  • Minimal dependencies
  • Easy deployment

Technical Architecture

The application uses a Node.js and Express backend with Socket.IO for real-time communication. The frontend is written in HTML, CSS and Vanilla JavaScript. No frontend framework was used.

Node.js Express Socket.IO HTML CSS Vanilla JavaScript QR Code Generation Render

Server-side state is held in memory, which significantly simplifies deployment while matching the intended use case of short-lived meetings.

Host Workflow

The host dashboard is the centre of the application. It displays the current speaker, live speaking queue, connected participants, meeting information, QR code, participant link and moderation controls.

SpeakerQueue host dashboard
The live host dashboard during an active meeting.

Participant Experience

Participants join from their own mobile devices by scanning a QR code or opening the participant link. They enter their name, select their role and use a large mobile-friendly control to raise or lower their hand.

SpeakerQueue participant interface
The participant interface as viewed on a smartphone.

Development Process

SpeakerQueue was developed incrementally using a checkpoint-based workflow. Each checkpoint introduced one meaningful piece of functionality before moving on to the next.

Express server
Dynamic meeting URLs
Socket.IO communication
Named participant joining
Raise-hand queue
Host moderation controls
Cloud deployment
UI refinement

Project Statistics

Engineering

  • 20+ development checkpoints
  • Real-time multi-user architecture
  • 100% Vanilla JavaScript frontend

Deployment

  • Hosted on Render Free Tier
  • Zero database
  • Zero paid infrastructure
  • QR-code based meeting joining

Lessons Learned

This project provided practical experience with real-time web applications, Socket.IO event architecture, state management, iterative development, Git workflows, cloud deployment, responsive interface design and UX refinement through user feedback.

More importantly, it reinforced the value of solving a real problem for a real user rather than building technology for its own sake.

Personal Reflection

SpeakerQueue is one of the most satisfying software projects I have worked on because it was never intended to be a portfolio exercise. It began with a genuine operational problem encountered during my wife's university senate meetings, where managing speaking requests manually became increasingly distracting as meetings grew larger.

Rather than trying to build a feature-rich meeting platform, I deliberately focused on solving one specific problem exceptionally well. Every design decision was measured against a simple question: "Does this genuinely make the chair's job easier?"

Perhaps the most rewarding aspect was seeing the application used almost immediately by the person it was designed for. Building software that genuinely improves someone's workflow is far more satisfying than creating technology for its own sake.

Live Demo & Source Code

The application is publicly accessible and the source code is available on GitHub. The repository also preserves the development history, making it possible to follow the project's evolution from a basic Express server to a deployed real-time web application.

Conclusion

SpeakerQueue demonstrates how thoughtful engineering and iterative development can solve a genuine operational problem without unnecessary complexity. What began as a small utility for university senate meetings evolved into a polished, real-time web application that remains focused on a single objective: making moderated discussions easier to manage.