Self-Hosted Error Monitoring.
Without the Sentry Bill.
Genius Debug is a minimal, self-hosted Sentry alternative for JavaScript and Next.js/React apps. Capture, group, and triage runtime errors — stack traces, source-mapped code locations, distributed traces, and short session replays — on your own infrastructure.
No account required · No credit card · No per-event pricing · Docker or Node + PostgreSQL + Redis
See the Dashboard
Issues, traces, and replays — the same triage loop, running on your own server. Click any screenshot to zoom in.
What is Genius Debug?
Genius Debug is a free, open-source, self-hosted error and performance monitoring platform for JavaScript and Next.js/React apps. It captures runtime errors, groups them into issues, symbolicates minified stack traces, and pairs each error with a distributed trace and a short session replay — all on your own server.
It is not a full Sentry clone. The positioning is deliberate: “own the slice of Sentry you actually use.”Sentry's Team plan starts around $26/month plus per-event overage once you exceed quota, scaling to $80+/month on Business. Genius Debug is free to run — you only pay for the VPS underneath it, and there is no per-event or per-seat charge as your team or traffic grows.
The integration path is compatibility, not reinvention: Genius Debug runs a Sentry-protocol compatible ingestion endpoint, so the official @sentry/nextjs SDK (or other Sentry client libraries) can send events to it exactly as they would to Sentry.io. You keep your existing instrumentation and just repoint the DSN. The ingest path is deliberately thin — it authenticates, rate-limits, and enqueues — so a slow or offline Genius Debug instance never blocks your app.
Genius Debug parses the same Error interface every browser and Node.js runtime exposes, using the Sentry event payload spec ↗ as its wire format. That means switching the backend to a self-hosted instance is a config change — DSN and source-map upload target — not an application code rewrite.
Built for Teams That Own Their Stack
Small-to-mid dev teams
Running Next.js / React apps who find Sentry SaaS overkill or too expensive for the size of the team.
Agencies & product studios
Want error monitoring per client without per-seat pricing eating into margin.
Privacy/compliance-conscious teams
Need error and replay data to stay on infrastructure they control, not a vendor’s.
Self-hosters
Already run their own Postgres and Redis and want one more service, not a new vendor relationship.
The Core Triage Loop. Nothing Extra.
The 20% of Sentry a small team actually lives in, day to day — grouped, symbolicated, traced, and replayed.
Error Grouping
- Deduplicates errors into Issues by stack-trace fingerprint
- Short, shareable issue IDs
- Automatic regression detection when a resolved issue comes back
- Full event context: request, user, environment, tags
Symbolication
- Maps minified stack frames back to original file, line, and function
- Source context around the failing line
- Debug-ID source maps stored in Cloudflare R2
- Works with standard Sentry source-map upload tooling
GitHub Integration
- One-click GitHub App install — personal or org
- "Open in GitHub" on every stack frame
- Suspect-commit detection for each issue
- Auto-resolve when a commit message says "fixes SHORT-ID"
Distributed Traces
- Span waterfall with per-span timing
- Error markers placed directly on the trace
- Linked back to the issue that fired
Session Replay
- On-error, privacy-masked DOM replay
- Error-marked timeline — jump straight to the failure
- See exactly what the user did before it broke
Smart Alerts
- New-issue, regression, and frequency-spike rules
- Dedupe, throttle, and snooze to avoid alert fatigue
- Email delivery via AWS SES
Fast Triage UX
- Filters, sort, and global search (⌘K)
- Keyboard navigation — j/k/e/x/↵
- Merge issues, assign to members, editable highlights
Safety & Scale Controls
- Remote kill switch — disable ingest with no redeploy
- Back-pressure shedding under load, dead-letter queue for poison events
- Time-partitioned events with auto-rolled monthly partitions and retention purges
- Multi-project support with per-project DSN keys and roles
Genius Debug vs Sentry SaaS vs GlitchTip
GlitchTip is the closest self-hosted comparison — lighter to run, but Session Replay and trace waterfalls fail silently. Genius Debug keeps both working.
| Feature | Genius DebugFree · Open Source | Sentry SaaS | GlitchTip |
|---|---|---|---|
| Price | Free (your server costs only) | $26–$80+/mo + overage | Free self-host · $15+/mo hosted |
| Hosting | Your infra | Vendor cloud (SaaS-first) | Your infra |
| Data ownership | 100% yours | Vendor-held | 100% yours |
| Sentry SDK compatible | Yes — standard @sentry/* SDKs | Yes (native) | Yes — same wire protocol |
| Error grouping + symbolication | Yes | Yes | Yes |
| Distributed traces | Yes | Yes | Fails silently (unsupported) |
| Session replay | Yes — on-error, privacy-masked | Yes | Fails silently (unsupported) |
| GitHub deep-links + auto-resolve | Yes | Yes | No |
| Resource footprint | Small VPS (~2 GB RAM) | 16+ GB (self-hosted) or SaaS | Very light (~256 MB RAM) |
| Setup | Docker Compose / VPS | Sign up (SaaS) or 40+ containers (self-host) | Docker Compose / VPS |
Sentry pricing and GlitchTip resource figures per each project's published docs, 2026. GlitchTip is Sentry-protocol compatible but does not implement Session Replay, Profiling, or trace waterfalls — those SDK calls fail silently.
Client → Ingest → Workers → Dashboard
Four services, one docker compose file. The ingest path is async and best-effort by design — Genius Debug never sits in your app's critical path.
Your App Keeps Its Sentry SDK
No SDK swap. @sentry/nextjs (or any Sentry client) keeps sending its standard envelopes — you just repoint the DSN and tunnel route at your own server.
Ingest, Queue, Process
A thin ingest endpoint authenticates, rate-limits, and enqueues onto Redis (BullMQ). Workers normalize, symbolicate, fingerprint, and group events into issues — ingest itself stays fast so your app is never blocked.
Triage in the Dashboard
Issues, traces, and session replays land in Postgres + R2 and surface in the React dashboard. Filter, search (⌘K), merge, assign, and set alert rules — email delivered via AWS SES.
Quickstart
Docker 24+ and Compose v2. Live in under five minutes.
# unzip your download, then:cd genius-debugcp .env.example .env # set JWT_SECRET, APP_ENCRYPTION_KEY, POSTGRES_PASSWORDdocker compose up -d --build # postgres + redis + migrate + ingest + api + workers + web# open http://localhost:8080 → create your admin accountFull guide: xgeniousllc.github.io/geniusDebug/deployment-guide.html ↗
Built on a Modern, Self-Hostable Stack
NestJS ingest and workers, Postgres for storage, Redis for the queue. Cloudflare R2 and AWS SES are optional.
NestJS + TypeScript
Ingest, API, and worker services
PostgreSQL (Drizzle ORM)
Issues, events, and project data
Redis (BullMQ)
Ingest queue and background processing
Cloudflare R2
Source maps and session replay storage (optional)
AWS SES
Email alerts (optional)
React + Zustand + Tailwind
Dashboard SPA
System Requirements
Any standard VPS — DigitalOcean, Hetzner, AWS EC2, or Coolify.
Frequently Asked Questions
No. Genius Debug speaks the Sentry envelope protocol, so you keep the official @sentry/nextjs (or any Sentry SDK) you already have installed and just repoint the DSN at your self-hosted instance. No code rewrite.
No. The SDK path is async and best-effort, and ingest is gated by a remote kill switch. If Genius Debug is down or overloaded, your app is unaffected — it just stops shipping events, nothing blocks.
The software is free and open-source. You only pay for the server you run it on — a small VPS is enough for a small team. There is no per-event, per-replay, or per-seat pricing.
No. The core capture, group, and triage loop works without them. Cloudflare R2 adds source-map symbolication and replay playback; AWS SES adds email alerts. Both are optional add-ons, not requirements.
The ingest backend is platform-agnostic and already groups platform:"php" events, so a Laravel app can send events to it today. A first-class Laravel integration guide is planned for v2 — for now, Next.js / React via @sentry/nextjs is the primary supported path.
GlitchTip is lighter to run but does not implement Session Replay, Profiling, or trace waterfalls — calls to those APIs fail silently. Genius Debug keeps distributed traces and on-error session replay working, so you are not trading away the features that make debugging fast.
Self-hosted Sentry needs Kafka, ClickHouse, Snuba, Relay, Symbolicator, Postgres, Redis, Memcached, and dozens of worker containers — 16GB+ RAM as a bare minimum, more like 32GB if it shares a box with anything else. Genius Debug runs on ~2GB RAM / 2 vCPU because it only implements the triage loop a small team actually uses, not Sentry’s full platform.
Yes. Swap the DSN, disable Sentry’s source-map upload step in CI, and add Genius Debug’s uploader instead. No application code changes are required.
Yes, the full source is included with your download. A formal LICENSE file (MIT is the intended license) is being finalized — check it before relying on Genius Debug for a commercial redistribution.
Still have questions?
Check the docs or open a ticket — we'll help directly.
Download Genius Debug
Full source · Docker Compose ready
- Ingest — envelope intake service
- API — dashboard REST API
- Workers — processing pipeline
- Web — React dashboard SPA
- Docker Compose file + per-service Dockerfiles
- Full documentation
