Issue tracking that stays yours.
Source-available ticket and project tracker — none of the Jira bloat, all of the workflow you actually need. Self-host on a $5 VPS, or let us run it for you. Same code either way.
# 60-second install git clone https://github.com/joshhearne/resolvd.git cd resolvd cp .env.example .env # edit secrets docker compose up -d --build
Everything you'd expect. Nothing you wouldn't.
Built for engineering, support, and ops teams who've outgrown a spreadsheet but don't want to onboard a sales rep.
Projects & Tickets
Scoped projects with custom prefixes (WEB-0042). P1–P5 priorities, semantic status chain with one-click Advance, auto-close grace, move between projects, inline title edit.
Bulk Edit & Merge
Admin Bulk Edit toggle adds checkboxes — change status / assignee / project across up to 500 tickets in one shot. Search-driven Merge picker collapses dupes by ref, title, or description.
Markdown Comments
GitHub Flavored Markdown editor with Write / Preview tabs, formatting toolbar, and Ctrl+B / Ctrl+I / Ctrl+Enter shortcuts. Mobile toolbar collapses to the essentials.
BYO-AI Rewrites
Bring your own OpenAI / Anthropic / Ollama key. ✨ AI button on every composer — tone, verbosity, ELI5. Per-project glossary primes the model with your lingo. Org-managed key + lock + usage badge for cost transparency.
SLA Tracker
Response + resolve clocks per priority, project-level overrides. Pause-on-blocker excludes vendor / customer wait time. Breach fires immediate in-app + email; MTD dashboard card scoped to your projects.
Mentions + Notifications
@ autocomplete subscribes mentioned users. 6×3 channel matrix (in-app / email / push) per event with email digest cadence — instant, hourly, 12h, or daily. Browser push via VAPID + service worker.
Email-to-Ticket
Email #PREFIX to create tickets. Dedup against recent open tickets, signature + reply-marker stripping, CC auto-attach. M365 Graph, Gmail API, or SMTP.
Learn moreHelpdesk Routing
Scope a mailbox to one project — inbound mail without #PREFIX auto-creates there. Per-account banner-strip presets (Inky, Mimecast, Proofpoint, Avanan) clean inbound bodies.
Learn moreVendor CRM
Companies + contacts scoped per project. Admin-gated Notify Vendor button. Per-vendor pill colors hashed from company id — same vendor, same color across users.
Learn moreMute + Daily Digest
Auto-mute noisy vendor replies on a ticket. Followers don't get paged; muted comments collapse into the thread and surface in a daily digest at the configured local time.
Learn moreFlexible Auth + Hardening
Microsoft Entra, Google OAuth, or local with Argon2id. TOTP MFA per role. Login hardened with per-IP rate limit, persistent block on credential stuffing, honeypot + sub-800ms dwell rejection, session regeneration, CSP + HSTS.
JIT Support Access
Support principals blocked until an admin approves a 1–14 day grant. Read-only by default. Every fine-grained access (ticket views, attachment downloads) lands in the audit log.
Encryption at Rest
AES-256-GCM envelope encryption with per-row data keys. HMAC blind index keeps title search working under encryption. Off / Standard / Vault modes.
NATO Phonetic Readback
Hover any ticket ref to spell it for vendor calls — WEB-0079 → "Whiskey Echo Bravo · 0 0 7 9". Org + per-user toggles. Pair with AlphabetSoup for general spelling.
VisitBoring stack. On purpose.
No bespoke runtimes, no exotic databases, no proprietary protocols. Components you already know how to operate, monitor, and back up.
- →Postgres 16 for everything: tickets, sessions, branding config.
pg_dumpis your full backup. - →Node + Express backend. Argon2 hashing, express-session, Multer uploads.
- →React + Vite + Tailwind frontend, served by nginx in a 30 MB Alpine image.
- →Bring your own TLS — Caddy, nginx, Cloudflare Tunnel, whatever you already run.
postgres: postgres:16-alpine
backend: node 22 + express
frontend: nginx alpine
nginx: internal router
▸ volumes: pg-data, uploads
▸ total RAM: ~400 MB idle
Run it your way.
Same source-available code in both directions. Pick the ops tradeoff you want.
Run it on your own hardware.
Your data, your VPS, your homelab. Docker compose up and you're running. Source-available under FSL-1.1 — free to self-host, fork, and audit.
- ✓ Full source on GitHub
- ✓ Install wizard or manual setup
- ✓ Community support
We run it. You file tickets.
Don't want to run a server? We'll host it for you. Flat per-instance pricing, automated backups, custom domain. Same code as the self-hosted build.
- ✓ Daily backups, managed updates
- ✓ Flat pricing — no per-seat tax
- ✓ Export your data anytime