"use client"; import { useState } from "react"; import type { ReactNode } from "react"; import { Badge } from "@/components/ui/Badge"; import { LinkButton } from "@/components/ui/Button"; import { UnbuiltMarker } from "@/components/ui/UnbuiltMarker"; import { MachineOutputNotice } from "@/components/ui/MachineOutputNotice"; const FAQS: { q: string; a: ReactNode }[] = [ { q: "What hardware do I need to run a node?", a: "A node is a small field SDR device running our edge-node software — it needs an SDR dongle capable of receiving your local P25 or analog trunked system, and a network connection to reach your DRB account. Full setup instructions are provided once you add a node.", }, { q: "What's the difference between a 'call' and an 'incident'?", a: "A call is a single radio transmission. An incident is the thing you actually care about — a pursuit, a fire, an accident — built by correlating related calls together, sometimes across multiple talkgroups or nodes. Incidents are the primary view; calls are the evidence behind them.", }, { q: "Does DRB do the transcription and AI work itself, or is that a separate cost?", a: ( <> Transcription and incident correlation run automatically on every recorded call and are included — they are not billed as an add-on. {/* Gate A / A2 (server-26#46) — qualified on the same screen as the claim. */} ), }, { q: "Can I listen to live radio traffic without opening the dashboard?", a: "Yes — the Discord bot can join a voice channel and relay live audio from any of your nodes, so your team can listen without a separate scanner app.", }, { q: "How does node ownership and team access work?", a: "Admins have full access. Operators are scoped to a specific list of nodes they own — they see and manage only those. Viewers get read-only access to everything the org exposes. You manage all of this from Settings → Members.", }, { q: "What happens if I go over my plan's node or seat limit?", a: "You'll see a plan-limit notice in Settings → Billing before anything is blocked. In this demo build there's no live enforcement wired up yet — see the Billing settings page for what's stubbed vs. real.", }, { // Gate A / A1 (server-26#46): plan-tiered retention windows are an unbuilt // entitlement — there is no TTL and no deletion sweep anywhere in the // product (server-26#44). The claim is marked unbuilt inline, on this // screen, rather than quietly dropped. q: "How long is call and incident history kept?", a: ( <> Retention limits — not yet available

Today nothing is deleted automatically: calls, recordings and incidents stay searchable and linked to their incidents for as long as your account is open. Per-plan retention windows and automatic deletion are not built yet, so we make no commitment about how long anything is kept or when it goes away. If you need data removed, ask us and we will remove it by hand.

), }, { q: "Is DMR supported?", a: "Not yet — DMR is on the roadmap but the current release only decodes P25 and analog trunked systems.", }, ]; function ChevronIcon({ open }: { open: boolean }) { return ( ); } export default function FaqPage() { const [openIndex, setOpenIndex] = useState(0); return (
FAQ

Frequently asked questions

Can't find what you're looking for? Sign in and reach out from your account.

{FAQS.map((item, i) => { const open = openIndex === i; return (
{open && (
{item.a}
)}
); })}
Get started
); }