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). Priority P1–P5, semantic status workflow with auto-close grace, move tickets between projects, inline title edit.
Flexible Auth
Microsoft Entra ID, Google OAuth, or local accounts with Argon2. Mix and match. TOTP MFA enforceable per role.
Email-native
M365 Graph, Gmail API, or SMTP. Create tickets by emailing #PREFIX — dedup, signature stripping, CC auto-attach. Followers paged on changes.
Real Collaboration
Comments, @mentions with auto-follow, Ctrl+Enter posts. Attachments up to 50 MB. Bulk PDF/CSV export, audit trail.
Vendor Coordination
Built-in CRM: companies + contacts per project. Notify Vendor button gates outbound. Vendor-visible comments, mute toggle, daily digest of muted replies.
JIT Support Access
Support principals blocked until an admin approves a time-bounded grant (1–14 days). Read-only by default. Every fine-grained access logged.
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.
Source-available
FSL-1.1 — free to self-host, free for internal commercial use. Auto-converts to Apache 2.0 after 2 years.
Boring 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