SentinelIX
A self-hosted alternative to Sentry + Better Uptime: API observability and incident management built with a Go backend and a Next.js 15 dashboard, designed so the public status page survives even if the main app goes down.
- Go backend split into three independently deployable binaries (cmd/api, cmd/worker, cmd/status-api) sharing a single clean-architecture core (domain → usecase → repository → delivery)
- Isolated, read-only status-API microservice with zero import dependency on the dashboard's auth, WebSocket, or business logic — the public status page stays up even if the main dashboard goes down
- Goroutine-per-monitor concurrent scheduler for uptime checks, plus a Redis Streams/Pub-Sub pipeline for error ingestion and cross-instance realtime sync
- Stack-trace fingerprinting to group duplicate errors into issues, with cooldown-based idempotent alert rules via email (Resend) and Slack webhooks
- Next.js 15 dashboard with TanStack Query and shadcn/ui, including an ISR-rendered public status page with dynamic OG image generation and edge JWT verification via middleware