What a DSN swap covers, and what it does not
change the dsn keep the sentry sdk
Already ship @sentry/browser, @sentry/nextjs, or sentry-python? Paste a new DSN. GlitchTip, Bugsink, Telebugs, Better Stack Errors, and Epure accept it. Honeybadger does not. Compatible means exception ingest, not full Sentry parity.
On this pageShowHide
If you already ship @sentry/browser, @sentry/nextjs, @sentry/node, or sentry-python, the first move is a new host. Keep Sentry.init. Paste a new dsn. Lite backends discard or ignore transactions and skip replay ingest. Leave tracesSampleRate, replaysSessionSampleRate, and profilesSampleRate at 0 so you do not ship volume nobody stores.
Epure speaks envelope plus legacy store. Transactions are discarded. Replay and profiling items are ignored. JS/TS sourcemaps only. Language fixtures exist for Go, Ruby, PHP, Java, and .NET; that is not CI-proven parse for every SDK version. Sentry 8.x+ is not CI-proven on Epure. Package status and CI pins: SDK matrix. Turn the discarded products off before you paste the DSN: disable Sentry tracing, disable session replay, disable profiling. Platform init: Integrations.
Who keeps the SDK
DSN swap
- Sentry: native. Stay if replay or APM is the product.
- GlitchTip: MIT, about four services, 512 MB recommended. Years on this wire.
- Bugsink: one Django container, SQLite-first, Polyform Shield.
- Telebugs: $299 appliance, Rails + SQLite, 1 GB documented minimum.
- Better Stack Errors: hosted DSN built from application token, ingest host, and application id (their public Errors docs). No self-host error box. Flutter obfuscated symbols are not uploaded yet.
- Epure: Apache 2.0, two containers (Rust + PostgreSQL 16), ~82 MiB idle measured 2026-09-12 on Docker Desktop. Cloud is Pro $29 / Scale $89.
Own SDK
Honeybadger posts to https://api.honeybadger.io/v1/notices with X-API-Key. Changing SENTRY_DSN to a Honeybadger URL will not land issues. This row exists so that query does not get a false yes. Flat SaaS around $26/mo. No self-host.
Sourcemaps
Epure accepts @sentry/cli release file uploads for JS/TS. Point the CLI at the Epure origin (same DSN host) and upload: sentry-cli releases files "$VERSION" upload-sourcemaps ./dist. Minified frames demangle when the event’s release matches. Python, Go, Ruby, PHP, Java, and .NET group on the frames the SDK sent. Sentry still wins native symbols. Guide: Source maps.
Scoreboard
Compatible means envelope or store ingest. Nobody on this page is 100% of Sentry’s protocol.
SDK path
- Sentry
- Native
- GlitchTip
- DSN swap
- Bugsink
- DSN swap
- Telebugs
- DSN swap
- Better Stack
- DSN swap (hosted)
- Honeybadger
- No · own SDK
- Epure
- DSN swap
Sourcemaps
- Sentry
- JS maps + native symbols
- GlitchTip
- Sentry-style artifacts
- Bugsink
- Sentry-style maps
- Telebugs
- See their docs
- Better Stack
- SDK frames; no Flutter symbols yet
- Honeybadger
- Own uploader
- Epure
- JS/TS maps · other langs raw frames
Dropped / unused
- Sentry
- Ingests replay, traces, profiles
- GlitchTip
- Lite clone · not Sentry replay
- Bugsink
- Exception-focused
- Telebugs
- Exception-focused
- Better Stack
- Errors DSN · their examples sample traces
- Honeybadger
- Sentry envelope unused
- Epure
- Transactions discarded · no replay ingest
License
- Sentry
- Cloud proprietary · FSL self-host
- GlitchTip
- MIT
- Bugsink
- Polyform Shield
- Telebugs
- $299 appliance
- Better Stack
- Proprietary SaaS
- Honeybadger
- Proprietary SaaS
- Epure
- Apache 2.0
Footprint
- Sentry
- 20+ containers · 16-32 GB
- GlitchTip
- ~4 services · 512 MB rec
- Bugsink
- 1 container · SQLite
- Telebugs
- 1 container · 1 GB min
- Better Stack
- Hosted
- Honeybadger
- Hosted
- Epure
- 2 containers · ~82 MiB idle
| Dimension | Sentry | GlitchTip | Bugsink | Telebugs | Better Stack | Honeybadger | Epure |
|---|---|---|---|---|---|---|---|
| SDK path | Native | DSN swap | DSN swap | DSN swap | DSN swap (hosted) | No · own SDK | DSN swap |
| Sourcemaps | JS maps + native symbols | Sentry-style artifacts | Sentry-style maps | See their docs | SDK frames; no Flutter symbols yet | Own uploader | JS/TS maps · other langs raw frames |
| Dropped / unused | Ingests replay, traces, profiles | Lite clone · not Sentry replay | Exception-focused | Exception-focused | Errors DSN · their examples sample traces | Sentry envelope unused | Transactions discarded · no replay ingest |
| License | Cloud proprietary · FSL self-host | MIT | Polyform Shield | $299 appliance | Proprietary SaaS | Proprietary SaaS | Apache 2.0 |
| Footprint | 20+ containers · 16-32 GB | ~4 services · 512 MB rec | 1 container · SQLite | 1 container · 1 GB min | Hosted | Hosted | 2 containers · ~82 MiB idle |
Public docs as of 2026-09 (Sentry self-host, GlitchTip install, Bugsink, Telebugs, Better Stack Errors Sentry SDK, Honeybadger notices API). Epure idle RAM measured 2026-09-12 on Docker Desktop.
After the DSN, the split is ops
License is the first fork: MIT (GlitchTip), Apache 2.0 (Epure), Polyform Shield (Bugsink), paid binary (Telebugs), hosted SaaS (Better Stack, Honeybadger, Sentry Cloud). Compose versus hosted is the second: Sentry self-host 20+ containers, GlitchTip about four, Bugsink and Telebugs one, Epure two (app + Postgres), Better Stack a hosted DSN.
Pick Epure if
- Leave @sentry/browser, @sentry/nextjs, or sentry-python in place.
- JS/TS maps via @sentry/cli are enough; other languages can live on raw frames.
- You will set traces, replay, and profile sample rates to 0.
- You want Postgres 16 with RLS, not SQLite as the primary store.
Pick another tool if
- Session replay or distributed tracing is how you debug: stay on Sentry.
- Counsel requires MIT: GlitchTip.
- One SQLite container is the ops model: Bugsink.
- You want $299 once plus vendor email: Telebugs. Honeybadger if you will replace the SDK. Better Stack if you want a hosted Errors DSN.
Roster: Compare. Clone: GitHub.
Install: Quickstart, Installation. Verify path: Verify.