Queuerd Customer Docs

Customer quickstart

Activate Queuerd quickly with snippet or SDK.

Queuerd Quickstart (customer)

Goal: activate the waiting room in 10-15 minutes.

1) Before you start

You need:

  • access to the Queuerd dashboard
  • the domain you want to protect (example: shop.yourdomain.com)
  • an admin user for your site

2) Initial setup

  1. Sign in to Queuerd.
  2. Complete onboarding and register your domain.
  3. Go to Queue Settings and confirm:
    • Queue active is enabled when you want to run the queue
    • max capacity and admission rate are configured

3) Choose an integration method

You can use one of the following:

  • JavaScript Snippet (fastest)
  • SDK (@queuerd/sdk) for backend control
  • Reverse Proxy (enterprise)

4) JavaScript Snippet install (recommended for quick launch)

In Integrations > JS Snippet, copy the script and paste it in your site <head> or before </body>:

<script src="https://www.queuerd.com/q.js" data-domain="shop.yourdomain.com" data-api-base-url="https://www.queuerd.com" defer></script>

Notes:

  • data-domain must match your tenant domain in Queuerd.
  • if you use another Queuerd host, update data-api-base-url.

5) SDK install (backend control)

Install package:

npm install @queuerd/sdk

Base example:

import { withQueue } from "@queuerd/sdk"

const domain = "shop.yourdomain.com"
const waitingRoomBase = "https://www.queuerd.com"

const guard = withQueue({
  domain,
  apiBaseUrl: waitingRoomBase,
})

export async function handler(request: Request) {
  const visitorId = request.headers.get("x-queuerd-visitor-id")
  if (!visitorId) {
    // Fail open if your app has not yet attached a stable visitor id.
    return new Response("ok")
  }

  const result = await guard(request)
  if (!result.allow && result.status === "waiting") {
    const destination = new URL(request.url).pathname
    const waitingRoomUrl = new URL(`${waitingRoomBase}/waiting-room`)
    waitingRoomUrl.searchParams.set("tenant", domain)
    waitingRoomUrl.searchParams.set("id", visitorId)
    waitingRoomUrl.searchParams.set("dest", destination)
    return Response.redirect(waitingRoomUrl.toString(), 302)
  }
  return new Response("ok")
}

Important:

  • withQueue expects a stable visitor id in the x-queuerd-visitor-id header.
  • the waiting room redirect should include tenant, id, and dest.

6) Quick verification

  1. In Queue Settings, enable queue.
  2. Open your website in incognito mode.
  3. You should be redirected to waiting-room.
  4. In Dashboard, verify Visitors in queue increases.
  5. Disable queue and confirm direct site access.

7) Reverse Proxy (enterprise)

If you choose Reverse Proxy:

  • set DNS as CNAME your-domain.com -> proxy.queuerd.com
  • verify the domain in Queuerd before enabling proxy mode
  • set origin to your public HTTPS upstream (example: https://origin.yourdomain.com)
  • keep queue and waiting room flow unchanged (queue executes first, admitted traffic is proxied)

8) Common issues

  • No redirect: check data-domain and queue active state.
  • Redirect loop: validate dest/allowed paths and domain setup.
  • No metrics: confirm traffic is hitting the configured domain.

9) Production launch checklist

  • Correct domain configured in tenant
  • Integration installed (snippet or SDK)
  • Queue active flow tested in incognito
  • Admissions and metrics visible in dashboard
  • Support team knows how to pause/resume queue