Web Dashboard
osqueue includes a web dashboard built with React, TanStack Router, and Tailwind CSS. It provides real-time visibility into queue state and lets you submit jobs interactively.
Running the Dashboard
With SST (recommended for development)
bunx sst dev
This starts the broker and provisions an S3 bucket automatically. Run the web dashboard separately (see Manual Setup below).
Manual Setup
Start the broker and dashboard in separate terminals:
# Terminal 1: Start the broker
STORAGE_BACKEND=memory bun run --cwd apps/osqueue broker
# Terminal 2: Start the web dashboard
cd apps/web
VITE_BROKER_URL=http://localhost:8080 bun run dev
Dashboard Features
The dashboard has multiple pages accessible via the navigation.
Main Dashboard (/)
- Queue Stats — real-time counts of total, unclaimed, in-progress, and completed jobs
- Active Workers — broker connection status and active worker information
- Job Table — lists all active jobs with ID, status, type, worker, attempts, and timestamps
- Activity Log — real-time event log
- Raw State — view the raw
queue.jsonstate
Producer Page (/producer)
Submit jobs directly from the browser:
- Select a job type from the dropdown
- Enter a JSON payload
- Click submit and see the job appear in the job table
Worker Page (/worker)
Displays connected worker information and active job assignments.
Connection Status
An indicator showing whether the dashboard is connected to the broker. The dashboard auto-detects the broker URL:
- If
VITE_BROKER_URLis set, it uses that directly - On a real domain (e.g.,
demo.osqueue.com), it connects toapi.osqueue.com(via CloudFront → Caddy reverse proxy) - On localhost, it connects to
localhost:8080
Transport Configuration
The dashboard uses Connect Web transport by default. You can override this with VITE_OSQUEUE_TRANSPORT:
VITE_OSQUEUE_TRANSPORT=rest bun run dev # Use REST transport
VITE_OSQUEUE_TRANSPORT=ws bun run dev # Use WebSocket transport