← Project index
theSwiftLine logo with people moving forward along an arrow

theSwiftLine

A virtual queue platform with a calmer interface for organizers and attendees.

Waiting should not require standing still

theSwiftLine turns a physical line into shared, visible state. Attendees can find an event, join remotely, see their position and expected wait, then get on with their day. Organizers create and share events, set capacity and service time, and move each queue from one focused workspace.

The new interface makes that promise tangible. Its dark, high-contrast system separates the organizer and attendee paths, keeps live status visible, and uses direct language instead of dashboard clutter.

theSwiftLine homepage showing a queue preview, organizer and attendee actions, and the product's three-step flow
The September 2026 redesign frames queue management as a calm, shared signal for organizers and attendees.

One product, two user paths

AttendFind your place

Search active events, inspect capacity and opening hours, join by link or QR code, then monitor or leave the queue.

OrganizeControl the flow

Create and share events, pause a queue, serve or skip members, and review active and past attendance.

Anonymous joining remains available when an organizer enables it, but the new API gives each anonymous attendee an individual revocable session. That keeps the low-friction entry path without relying on a shared anonymous credential.

The architecture changed under the interface

The live React and Vite PWA runs on Vercel. Requests under /api/next/* are rewritten to a Next.js API that connects directly to Neon PostgreSQL. The previous .NET service remains in the repository as a behavior and database reference, but it is no longer required by the active production path.

This is a staged migration rather than a visual-only rewrite. Queue and event commands, authentication, session rotation, and email delivery now live beside the Next.js API, while contract tests protect the behavior inherited from the earlier service.

Interface
React, Vite, installable PWA behavior, responsive layouts, and a consistent dark workspace.
Application
Next.js route handlers own authentication, event commands, queue mutations, and public reads.
Identity
Verified password signup, secure password hashes, rotating refresh sessions, and Google sign-in.
Delivery
A PostgreSQL outbox records verification email work before immediate and scheduled retry attempts.

Account trust without a dead end

Password signup uses one-time email verification, Cloudflare Turnstile, ASP.NET Identity-compatible password hashes, and rotating refresh sessions. Verification is attempted immediately, but a successful signup does not depend on the mail provider being healthy at that moment.

The API first commits a delivery request to PostgreSQL. A protected batch tries to send it immediately, while a scheduled GitHub Actions workflow retries leased work with bounded attempts and records terminal failures for diagnosis.

theSwiftLine split-panel sign-in screen with Google and password authentication
The account flow uses the same restrained visual language as the queue workspace and supports both Google and password sign-in.

Tradeoff: the Vite shell and Next.js API create a temporary two-app deployment. That adds routing and release coordination, but lets the product migrate behavior in tested slices instead of replacing the running system in one risky cutover.

Evidence in the repository