$ show openstatusHQ/openstatus
OpenStatus is a production-grade, self-hostable uptime monitoring, incident management, and status page platform. In production, it runs multi-region synthetic checks (HTTP, TCP, DNS, ICMP, gRPC) from Go-based checker and private-location services, streams check results into Tinybird for time-series analytics, persists workspace state (monitors, pages, incidents, API keys, OAuth clients) in SQLite via Drizzle ORM, and renders results through a Next.js dashboard and a public, i18n-enabled status page app with custom-domain proxy support, password/email/IP access gating, themes, and RSS/JSON/markdown feeds. A Hono-based API server exposes three API surfaces - a frozen legacy REST v1 (OpenAPI), tRPC, and ConnectRPC - plus an MCP server for AI agents and a Slack bot that can resolve incidents conversationally. The architecture is a deliberately polyglot monorepo: 8+ apps (dashboard, status-page, web marketing, Hono server, Go checker, Go private-location, Deno workflows, Go ssh-server) and 20+ internal packages. Business logic is centralized in packages/services behind a consistent ServiceContext + withTransaction + requireScope + emitAudit mutation pattern, then adapted to tRPC, ConnectRPC, and REST entry points. Multi-tenant workspaces include plan-based limits, API keys with scopes, a full OAuth 2.0 authorization server (PKCE), WorkOS SSO, Stripe billing, and append-only audit logging. Background Deno workflows handle cron maintenance: outbox draining, status drift repair, OAuth client pruning, and uptime freezing. Craftsmanship is strong: the service-layer pattern is applied uniformly, there is an explicit ServiceError hierarchy mapped to both tRPC and gRPC errors, external services (Upstash, Tinybird, Slack, analytics) have thorough test doubles, and several packages are genuinely standalone and reusable (CDN header analysis, assertion engine, schema-driven data-table filters, Effect-based status fetchers). Caveats are real but not disqualifying: the REST v1 API is explicitly frozen and bypasses the service layer, identical composition/chart utilities are duplicated across dashboard and status-page apps, a deprecated screenshot-service remains in-tree, the Go/TypeScript protobuf boundary requires manual synchronization, and an in-progress auth migration has left Clerk-era references alongside NextAuth. Overall this is a well-architected, actively maintained codebase that does what it claims.
The LLM identified 5 files worth highlighting for reuse:
Deterministic CDN provider identification and cache-status normalization derived purely from HTTP response headers (Cloudflare, Vercel, Fly, and others), including edge POP and topology inference. Stateless and self-contained: feed it response headers, get back provider identity and cache outcome. Extractable into any HTTP monitoring, site-speed, or observability tool that needs to attribute response behavior to a CDN without external APIs.
A monitor assertion engine that evaluates multi-type assertions (status code, header, body, timing) against HTTP/DNS responses. It is a pure, provider-agnostic rule-evaluation library with no framework dependencies - reusable for synthetic monitoring, API contract testing, or CI health checks that need a composable expression of pass/fail criteria.
Pluggable, Effect-based fetchers that normalize third-party status page data (Atlassian Statuspage, incident.io, BetterStack, plus an HTML scraper fallback) into a shared model. Demonstrates non-obvious composability: each fetcher is a small Effect program that can be chained, retried, and mocked. Solves the recurring integration problem of consuming heterogeneous external status APIs and can be lifted into any incident-management or vendor-consolidation tool.
A generic, schema-driven filtering system for React data tables. Filters are declared once from schemas, then rendered through pluggable state adapters (in-memory, nuqs, zustand) with a shared filtering core. Notably includes AI prompt generation that converts natural-language queries into structured filter conditions. Reusable across any TanStack Table application that needs consistent, feature-rich filtering without hand-writing filter widgets per table.
A composable request-time proxy pipeline for custom-domain status pages. It composes prioritized stages - locale override, slug prefixing, password gate, email-domain restriction, IP restriction, then default rewrite - as small pure functions with clear contracts and extensive per-stage tests. Demonstrates a clean chain-of-responsibility pattern for host-aware routing and access gating that can be extracted to any application needing ordered, testable edge middleware.