Real-time product · Queue management

Next

Production v1.0 / 2026

One synchronized answer to three questions: who is waiting, who is being served, and who is next.

Role
Product design + full-stack engineering
Stack
Next.js · Supabase · PostgreSQL
Quality
131 documented release checks
Next real-time queue system landing page
Next · Production landing experience

The product

A small workflow with three distinct audiences.

Paper lists and shouted names create uncertainty for customers and unnecessary coordination for staff.

Next gives customers a stable queue number and position, staff a focused command board, and public displays a privacy-safe view of the active number. All three experiences share persistent state and converge without manual refresh.

  1. 01Create a queue and receive a one-time staff capability
  2. 02Let customers join without permanent accounts
  3. 03Call, complete, skip, pause, reopen, or close from staff view
  4. 04Keep customer and public displays synchronized safely

Product experience

Purpose-built views, one authoritative queue.

Next staff board with waiting, serving, and completed queue entries
Staff board · Authorized queue commands and live state
Customer queue status with number and position
Customer status · Position, connection, and turn feedback
Next customer queue interface on mobile
Responsive mobile experience

Architecture

Authorization and consistency live with the data.

Next.js serves the interface from Vercel. Supabase provides anonymous authentication, PostgreSQL, RPC access, and filtered Realtime signals. The browser receives public configuration only; privileged credentials never enter the application runtime.

01

Database-enforced commands

Browser clients cannot write queue tables directly. Every mutation crosses an explicit PostgreSQL function that authorizes the actor and applies one atomic state change.

02

Realtime as invalidation

Realtime messages tell clients that something changed; each client then fetches a revisioned authoritative snapshot and ignores stale responses.

03

Idempotent transitions

Every command receives a request UUID. Safe replays return the current result while mismatched reuse is rejected before state can diverge.

04

Privacy by separation

Public displays expose queue numbers only. Optional customer names live in a private table and are available only to authorized staff.

Release evidence

Quality measured across the complete system.

The release was validated at the interface, domain, database, integration, browser, and production layers without counting the focused Realtime subset twice.

34
unit and component checks
62
database authorization checks
11
Supabase integration checks
15
browser workflow checks
9
production smoke checks

The project documentation also records free-tier limits, anonymous identity tradeoffs, recovery constraints, and deployment boundaries instead of presenting a portfolio release as an enterprise service.

Next projectExplore CareerFlow →