Introduction
Unseenr is a multi-tenant SaaS platform for error tracking, session replay, and uptime monitoring. It is fully hosted in the EU (Hetzner Cloud, Germany and Finland) and DSGVO/GDPR compliant.
What Unseenr Does
Unseenr captures errors, performance data, structured logs, and browser session recordings from your applications. It also monitors the uptime of your websites and services across multiple regions.
Error Tracking
Unseenr automatically groups errors into Issues based on fingerprinting. Each issue shows:
- Error message, stack trace, and culprit
- First seen and last seen timestamps
- Event count and affected user count
- Environment and release information
- Breadcrumbs and custom context
Session Replay
Record browser sessions using rrweb. Replays are stored as gzip-compressed chunks in Hetzner S3 (EU). Sensitive inputs are masked by default.
Uptime Monitoring
Monitor your services with 13 different check types across our EU regions (Nuremberg, Helsinki); a third region (Ashburn, USA) is planned. Get alerted through 21 notification channels when something goes down.
Structured Logs
Capture structured log entries with levels (DEBUG, INFO, WARNING, ERROR, FATAL), trace correlation, and custom attributes.
Performance Monitoring
Track transactions with HTTP timings, database queries, and custom spans.
Key Features
- Sentry SDK compatible: Use the standard
@sentry/browseror@sentry/nodeSDK, or the native@unseenr/nodeSDK - EU hosted: All data stored on Hetzner Cloud in Germany/Finland
- GDPR/DSGVO compliant: PII scrubbing, data retention policies, data export
- 21 alert channels: Email, Discord, Slack, PagerDuty, Telegram, and more
- Public status pages: Show your uptime to customers
- 6 plans: From free forever to enterprise scale
Architecture Overview
Unseenr uses a three-layer tenant isolation model:
- PostgreSQL Row-Level Security (RLS) on all tables by
organizationId - Prisma Extension with
createTenantClient(orgId)that auto-scopes all queries - API Middleware Chain:
authMiddleware>orgMiddleware>roleMiddleware>projectMiddleware
Events are ingested via the public /api/{projectId}/envelope endpoint, rate-limited and quota-checked, then queued via BullMQ for async processing by the worker.