Showcase · live in production
Self-hostable Atlassian Statuspage alternative with uptime monitoring, custom domains, white-label branding and GDPR-compliant email subscribe. Multi-tenant, realtime via SSE, full audit trail via event sourcing. Live at publicstatus.eu since 2026-10-04, with a new design for the public status page, the admin and the auth pages. We use it ourselves for status.kumiko.rocks.



How it's built
defineFeature("publicstatus", …)
Component CRUD, incident open / post-update / resolve, maintenance schedule. Each transition emits an event: full timeline reconstructible.
Uptime monitors + SSE
HTTP checks with availability and latency history. Public-page subscribers see status changes within milliseconds via Redis pub/sub, no client polling.
Subdomain + custom domain
acme.publicstatus.eu → tenant Acme. publicstatus.eu/a → admin and sign-in (/admin redirects there). Custom domain with DNS verification in admin, all served by one Bun app.
Branding + delivery
Logo, colors and page title per tenant. Every status page gets a server-rendered Open Graph card and a favicon that follows the current status. Email subscribe with double-opt-in, one-click unsubscribe. BullMQ jobs for delivery, retry, dead-letter (from bundled-features).
billing-foundation
Checkout consent, the small-business VAT note, the operator address and cancellation pages at /legal/cancel and /legal/kuendigen come from the billing-foundation consumer-protection option. The admin and auth pages have a light and a dark mode. A waitlist form on the home page collects interest.
Hosting reality
Runs on a Kubernetes cluster at Hetzner that is managed with Pulumi. The ingress splits publicstatus.eu by path between the app (admin under /a, APIs) and the Astro site. Status pages live on tenant subdomains; tenant subdomains and custom domains go to the app, custom domains get a Let's Encrypt certificate through the cluster.
Asset tracker, helpdesk, CRM, internal portal: same framework, same multi-tenant, same audit, same on-prem option.