Independent. Self-hosted. Written in Go.

Good signals.
Your stack.

Error tracking and observability in Go. Run one application container with PostgreSQL and connect the Sentry SDKs you already use.

Active development · full parity still ahead

THE WORKSPACE

From “something broke”
to something you can fix.

Group the errors. Read the stack.
Keep the context close.

GOODSENTRY / NORTHSTAR DEMOActual product
Actual GoodSentry issue list with six grouped demo issues, project context, status, event counts and filters.
Actual GoodSentry UI. Fictional demo data.Built for the work after the alert.
VERIFIED SDK CLIENTS

Go 0.50.0Python 2.72.0Node 11.7.0Browser 11.7.0

See compatibility scope

WORKING TODAY

The useful details,
in one place.

Independently implemented.
Verified against real clients and data.

GoodSentry issue list with grouped demo errors, filters and event counts
Actual issue list · fictional demo data
01 / ERROR TRACKING

See the signal, not just the exception.

Grouped issues keep stack traces, breadcrumbs, tags, affected users, comments and triage history together. Search and filters stay on durable event data.

  • Assign, resolve, ignore, merge and comment
  • Release and environment aware history
  • Exact event context and binary attachments
GoodSentry issue detail with stack trace and event context
Issue detail · actual product
02 / DEBUG CONTEXT

Read the stack you actually shipped.

JavaScript source maps, debug IDs and native symbol files connect minified or compiled frames back to useful source locations without discarding the original event.

  • CLI and native source-map uploads
  • DWARF, dSYM and Breakpad symbolication
  • Raw JSON and attachment inspection
GoodSentry performance view with transaction latency and pagination
Transactions · actual product
03 / PERFORMANCE

Follow the slow path across a trace.

Inspect transactions, standalone spans and child operations with latency percentiles, trace ancestry and cross-project waterfall views.

  • Average, p50 and p95 latency
  • Time windows and operation filters
  • Linked logs and related errors
GoodSentry log explorer with typed attributes and filters
Log explorer · actual product
04 / LOGS

Typed logs, without losing the edge cases.

Search retained Sentry and OpenTelemetry logs by service, level, environment, time or trace. Inspect attributes without rounding 64-bit integers.

  • OTLP/HTTP protobuf and JSON
  • Trace-correlated log inspection
  • Deduplication and bounded pagination
GoodSentry uptime monitor list with health and history states
Uptime monitors · actual product
05 / UPTIME & ALERTS

Know when availability changes.

Schedule HTTP, TCP, SSL and heartbeat checks. Error-frequency and uptime rules deliver durable email, Slack, provider webhook or generic webhook attempts.

  • Failure thresholds and recovery history
  • Persistent delivery queues and retries
  • Provider-native alert payloads
GoodSentry people and teams view with roles and invitations
People and teams · actual product
06 / PEOPLE & ACCESS

Run the workspace close to the work.

Invite members, manage owners, admins and teams, scope API tokens, attach projects to multiple teams and verify secondary sign-in emails.

  • Owner last-guard and atomic owner transfer
  • Organization-contained project teams
  • Password recovery, instance and per-organization OIDC, email verification
GoodSentry account security screen
Account security · actual product
07 / ACCOUNT SECURITY

Credentials you can operate yourself.

Change the password with global session and token revocation, recover access by email, add verified secondary sign-in addresses, require a TOTP code from your authenticator app and use OIDC when configured.

  • Single-use recovery and verification links
  • Optional TOTP two-factor sign-in with single-use recovery codes
  • Primary and verified secondary email addresses
  • Owner-controlled API tokens and permissions

MAKE IT YOURS

Bring Docker.
Keep your SDK.

Pull the public application image and start it alongside PostgreSQL. No separate web or worker services to assemble.

  1. 01

    Start the stack

    You need Git, Docker with Compose, and OpenSSL.

  2. 02

    Open your workspace

    Visit localhost:8000. The first start creates one owner and organization, so you land in the workspace; add a project and copy its DSN.

  3. 03

    Point your SDK at its DSN

    Copy the project DSN into your existing Sentry SDK configuration. Verify the capabilities your application needs.

TERMINAL / LOCAL SETUP
git clone https://github.com/jerolan/good-sentry.git
cd good-sentry
test -f .env || printf 'SECRET_KEY=%s\n' "$(openssl rand -hex 32)" > .env
docker compose up -d

Keep your .env between restarts. The secret protects sessions. Local mode has no login screen and is meant for a trusted machine or network; set GOODSENTRY_AUTH=required to enable sign-in, then configure your public domain and database credentials before exposing the stack.

A CLEAR STATUS

Useful today.
Still being built.

GoodSentry is an independent Go implementation in active development. Full Sentry compatibility and GlitchTip feature parity are not complete.

Error tracking, performance and typed logs, uptime and alerting, people and team management, verified account emails, optional TOTP two-factor sign-in, instance-wide OIDC plus per-organization OpenID Connect sign-in applications with a shareable login page, Sentry-compatible management APIs, minidump and DWARF/dSYM symbolication, Grafana Sentry data source panels and an opt-in MCP server with OAuth PKCE are implemented and tested. Vendor-specific provider deployments and external identity-provider receipts, automatic repository synchronization, advanced administration and the final requirement audit remain on the roadmap. OpenTelemetry log ingestion works through standard OTLP/HTTP exporters. Optional local/S3 Parquet cold span archival is queryable and retains spans through the configured transaction-retention deadline. Public amd64 and arm64 application images are available; a repeatable 2,100-request workload measured 34.47 MiB peak application memory with PostgreSQL excluded.