Back to Projects
Next.jsTypeScriptNeonSSEVercel

QueueMaster

Digital queue management SaaS for small businesses.

View Live
The Problem

Small businesses bleed customers waiting in invisible queues.

Walk-in businesses — barbershops, clinics, government counters — manage queues with paper slips or verbal announcements. Customers have no visibility into wait times, staff have no control over flow, and businesses have no data to optimize operations. The result: customers leave, staff get overwhelmed, and no one knows how bad the problem actually is.

Context

Built solo as a multi-tenant SaaS platform using vibe engineering — AI-assisted development to accelerate architecture decisions and implementation velocity without sacrificing production-grade quality.

Tech Stack
Next.jsFull-stack framework — App Router for SSR, API routes for business logic
TypeScriptEnd-to-end type safety across client and server
NeonServerless Postgres — zero cold start, scales to zero on idle
SSEReal-time queue updates pushed from server to dashboard
VercelEdge deployment, zero-config CI/CD
Architecture

Click any node to see details

Key Decisions
01

SSE over WebSocket for real-time

Queue dashboards are fundamentally read-heavy — operators watch numbers change, customers see their position update. This is a one-directional data flow: server pushes, client reads. WebSocket made no sense here. It requires a separate library, more complex connection management, and bidirectional capability we'd never use. SSE works natively over HTTP, needs zero extra dependencies, and is exactly the right primitive for a broadcast-to-dashboard use case.

02

Multi-tenant from day one

Building multi-tenancy as an afterthought is one of the most painful refactors in SaaS. Every query, every API route, every data model was designed with tenant isolation from the start — each business operates in a completely isolated data context. This decision cost more upfront but makes the platform genuinely sellable without re-architecture.

03

Neon over traditional Postgres hosting

A SaaS with low initial traffic does not need an always-on database. Neon's serverless model — scale to zero, instant branching, serverless driver — matched the stage of the product. It removed the fixed infrastructure cost while keeping full SQL expressiveness, with the option to scale up as tenants grow.

Lessons Learned
  • Choosing the right primitive (SSE vs WebSocket) matters more than picking the most capable tool — match the tool to the actual data flow.
  • Multi-tenancy is not a feature you add later. It is a constraint that shapes every layer of the system from the start.
  • Vibe engineering accelerates the path from problem to working system, but architectural decisions still require deliberate human judgment.
Back to Projects
AI · Trained on Dimas's profile