Show HN: ResolveHQ – A Helpdesk Built on Cloudflare Workers, D1, R2 and Queues

Sep 12, 2026 04:48 AM - 6 hours ago 4

ResolveHQ is simply a Cloudflare-native, self-hostable helpdesk for mini support teams.

Deploy to Cloudflare

  • Run a shared inbox pinch tenant-isolated customers, tickets, assignment, status, priority, tags, and full-text search.
  • Sign up arsenic owner, induce teammates, and negociate Owner/Admin/Agent roles pinch a workspace switcher crossed organizations.
  • Thread email correctly per RFC 5322, resistant to subject-line spoofing crossed tickets.
  • Receive message done Cloudflare Email Routing and nonstop it done Resend, pinch transportation status, retries, and idempotent webhooks. Outbound replies transportation their linked attachments, and dead-letter queues drain to durable, recoverable records.
  • Attach files to tickets done validated, authorized R2 uploads.
  • Reply faster pinch saved replies, soul notes, AI-drafted responses (opt-in), and a responsive three-pane inbox pinch optimistic-version conflict handling.
  • Reset passwords and judge invitations done strategy email sent via the aforesaid supplier seam arsenic summons mail.
  • Publish a nationalist thief halfway from knowledge-base articles, pinch drafts kept backstage to your team.
  • Track measurement and consequence velocity successful Reports, export immoderate model to CSV, and automate triage pinch rule-based Automations.
  • Notify agents of assignments and customer replies in-app, and activity comfortably successful ray aliases acheronian mode.
  • Export everything stored astir a customer arsenic JSON, aliases erase it pinch a durable, resumable workflow that cancels queued mail.
  • Recover automatically: a five-minute cron occupation retries stalled message jobs and cleans up staging and orphaned data.
  • Control AI assistance per workspace: it stays disconnected until an admin enables it successful Settings, and only past are summons conversations sent to OpenAI.
  • Set TICKET_RETENTION_DAYS (for illustration 365) to person the scheduled expanse permanently delete resolved and closed tickets older than that window, including attachments.

The workspace uses a Slack-inspired aubergine sidebar, self-hosted Lato typography, Lucide icons, and Radix UI primitives. Theme-aware controls and position colors support ray and acheronian workspaces. On mobile, bottommost navigation and a keyboard-accessible workspace drawer support each destinations available; summons columns accommodate to sphere taxable readability.

Use Cmd/Ctrl+K to jump betwixt pages. The sidebar dock contains notifications, taxable switching, and relationship actions.

ResolveHQ runs arsenic a azygous Cloudflare Worker successful your ain account. Hono serves some the REST API and the built React application. Cloudflare D1 holds tickets and customers, Cloudflare R2 holds attachments, and Cloudflare Queues transportation inbound and outbound message jobs. Cloudflare Email Routing delivers incoming message to the Worker, and Resend sends outgoing mail. Tickets and attachments are stored successful your Cloudflare account; outbound email contented passes done Resend.

ResolveHQ tin tally connected Cloudflare’splan for mini deployments, provided usage stays wrong the existent limits for Workers, D1, R2, Queues, Cron Triggers, and Email Routing. CPU-intensive authentication aliases message parsing whitethorn require Workers Paid; benchmark your deployment. Queues are disposable connected Workers Free. R2 requires relationship activation and billing setup separately. Resend handles outbound email nether its ain limits. See the Free-plan audit.

The easiest measurement to get started is pinch the Deploy to Cloudflare fastener above. You will need:

  • A Cloudflare account; Workerssupports Queues. Activate R2 separately.
  • A domain connected Cloudflare, truthful you tin group up Email Routing.
  • Optionally, a Resend relationship pinch a verified sending domain, to nonstop outgoing mail.

After deployment, unfastened your ResolveHQ URL and motion up arsenic the owner, giving an optional support email that becomes your default inbox. In the Cloudflare dashboard, adhd an Email Routing norm sending that reside to the deployed Worker, past nonstop a trial email to corroborate it arrives successful the inbox.

See the deployment guide for what the deploy travel provisions, required configuration, first-run setup, and manual deployment.

npm install cp .dev.vars.local.example .dev.vars npm tally db:migrate:local npm tally db:seed:local npm tally dev

The Vite exertion runs connected http://localhost:5173 and proxies /api to Wrangler connected http://localhost:8787.

  • Deployment and configuration
  • Architecture
  • Security
  • AI assistance: group OPENAI_API_KEY (and optionally OPENAI_MODEL, default gpt-4o-mini) arsenic Worker secrets to make AI available. Each workspace still opts successful done Settings; without a cardinal the characteristic stays hidden and nary AI calls are made.
  • Retention: group TICKET_RETENTION_DAYS arsenic a Worker adaptable to automatically delete resolved and closed tickets (with attachments) aft that galore days. Unset intends thing is deleted automatically.
  • Multi-language interface and notifications extracurricular the app (email digests).

See LICENSE.

More