Lohnt sich dein eigenes Instatus?
Gehostete Statusseiten mit Vorfallupdates und Benachrichtigungen für deine Abonnenten.
Die Seite selbst ist der einfache Teil: Komponenten, farbige Punkte, ein Vorfallverlauf, eine Verfügbarkeitsleiste für 90 Tage; ein Agent liefert dir das an einem Nachmittag. Die Verteilung der Benachrichtigungen wird lästig: E-Mail ist ein Resend-Konto und eine Schleife, aber du übernimmst Double-Opt-in, Abmeldungen, die Behandlung unzustellbarer Nachrichten und die Erklärung, warum die Vorfall-E-Mail während des Ausfalls im Spam landete. Hosting ist die andere Hälfte: Eine Statusseite auf derselben Infrastruktur wie das System, über das sie berichtet, ist Dekoration; du brauchst deshalb einen separaten Hoster und eine separate Domain sowie die Disziplin, alles langweilig zu halten. Dazu kommt der Workflow, den Instatus dir unauffällig mitgibt: um 2am ein Update vom Smartphone schreiben, Abonnentenpräferenzen pro Komponente, Slack und RSS und Webhooks. Für ein persönliches Projekt an einem Wochenende baubar; nichts, das du selbst zusammenzimmern solltest, wenn ein echter Kundenvertrag die Wörter „Statusseite“ enthält.
EN → DERecherche automatisch aus dem Englischen übersetzt. Original-Prompt auf Englisch beibehalten.
Build a self-hosted status page app in an empty folder. Stack, no substitutions: Node 20, Fastify, better-sqlite3, server-rendered HTML via Fastify's reply.type('text/html') and plain template literal functions, vanilla CSS in one file. No React, no build step, no ORM.
What it does:
1. Public page at / showing a list of components (name, description, status: operational, degraded, partial_outage, major_outage) with an overall banner computed from the worst component status.
2. Under that, incidents newest first. An incident has a title, impact, current status (investigating, identified, monitoring, resolved), and an append-only list of timestamped updates.
3. A 90 day uptime strip per component rendered from a daily_status table (one row per component per day, worst status seen that day). Fill it from the poller below.
4. GET /api/status returning the same data as JSON, and GET /feed.rss as a valid RSS 2.0 feed of incident updates.
5. Admin at /admin behind a single bearer token from ADMIN_TOKEN in .env, checked with a constant-time compare. Forms to: set component status, open an incident, append an update, resolve it. HTML forms, no JS framework.
6. Subscribers: POST /subscribe takes an email, stores it unconfirmed with a random token, emails a confirm link. GET /confirm/:token confirms. Every email includes a working GET /unsubscribe/:token link. When an admin appends an incident update, queue one email per confirmed subscriber and send them sequentially with a small delay, logging failures to a sends table. Use Resend via fetch with RESEND_API_KEY from .env; if the key is absent, write the emails to ./outbox/ as .txt files instead so it runs offline.
7. Optional poller: a setInterval that HTTP GETs each component's check_url if set, marks degraded on slow responses over 2s and major_outage on non-2xx or timeout, and writes daily_status.
In scope: SQLite schema created on boot with migrations as plain SQL strings, seed script with three components and one resolved incident, a README that says in one sentence to deploy this somewhere other than the infrastructure it monitors.
Out of scope, do not build: multi-tenancy, SMS, Slack or Discord integrations, OAuth, custom domain automation, an analytics or telemetry call of any kind, Docker, a JS bundler.
Secrets only in .env, with a .env.example committed and .env gitignored. Include npm scripts: dev, seed, poll. It must run with npm install and npm run dev on a clean machine.Der Prompt öffnet sich vorausgefüllt in deinem Agenten. Prüfe ihn vor dem Ausführen. · dieser Prompt wurde aus dem Bauplan erzeugt · per PR verbessern
Wie sähe deine eigene Version aus?
Eine separat gehostete Statusseite, die Komponentenzustand und Vorfallupdates aus einer kleinen Datenbank darstellt, mit einem Adminformular zum Veröffentlichen von Updates und einem E-Mail-Rundversand an bestätigte Abonnenten.
Was du brauchst
- Ein Hoster außerhalb der Infrastruktur, über die du berichtest, idealerweise ein vollständig anderer Anbieter
- Eine separate Domain oder Subdomain auf separatem DNS
- Ein Anbieter für Transaktions-E-Mails mit verifizierter Versanddomain, etwa Resend oder Postmark
- Ein Speicherort für Abonnenten, der einen Neustart übersteht
Weil eine Statusseite die eine Seite ist, die funktionieren muss, wenn nichts anderes mehr geht, und ein Drittanbieter der günstigste Weg ist, diese Unabhängigkeit zu kaufen. Es ist außerdem eine Seite, die Kunden und Prüfer ansehen; wenn sie etwas hässlich oder etwas verspätet ist, kostet das mehr Vertrauen, als das Abo Geld kostet. Die meisten Teams, die selbst bauen, enden mit einer Seite, die technisch ihnen gehört und praktisch ungepflegt ist, mit einem Vorfallfeed, dessen letzter Eintrag vierzehn Monate alt ist.
xZustellbarkeit, die jemand anderes aufbaut und überwacht: Deine erste Vorfall-E-Mail ist zugleich dein erster Test der Versandreputation
xBenachrichtigungskanäle über E-Mail hinaus: SMS, Slack-App, Teams, Discord, native Webhooks, RSS, alles bei Instatus sofort enthalten
xAbonnements pro Komponente, Abmeldeverarbeitung und Double-Opt-in, um die du dich nicht kümmern musst
xDen Feinschliff: geplante Wartungsfenster, Vorfallvorlagen, Zeitzonenbehandlung, einbettbare Widgets, öffentliche API
xEchte Unabhängigkeit, sofern du nicht tatsächlich die Arbeit investierst, die Seite außerhalb deines eigenen Stacks zu hosten
Nichts, worauf sich verweisen ließe. Deshalb gibt es den Prompt.
Was kostet Instatus?
- Monatliche Zahlung
- 20 $/Mon.20 $/Mon.
- Pro Jahr
- 240 $/Jahr240 $/Jahr
- Mit brasilianischer Karte, inkl. 3,5% IOF
- 105 R$/Mon.1.254 R$/Jahr
In Meine Liste gespeichert. Bei einer Preisänderung erscheint hier ein Hinweis.
Du schließt den Kauf auf der Website von Instatus ab. Vibe Radar wickelt keine Zahlungen ab.
Instatus selbst bauen oder abonnieren?
Passe die Zahlen an: Stunden zum Bauen, dein Stundensatz, Betriebskosten und der Abopreis.
Über 24 Monate ist das Abo günstiger.
Startwerte aus der Analyse geschätzt (ein Wochenende). Nicht eingerechnet ist, was dir fehlt (Support, Integrationen, Sicherheit).
Kann ich Instatus nachbauen?
Teilweise. Den Kern von Instatus baust du mit dem Prompt auf dieser Seite an einem Wochenende, aber es gibt echte Lücken: Zustellbarkeit, die jemand anderes aufbaut und überwacht: Deine erste Vorfall-E-Mail ist zugleich dein erster Test der Versandreputation, Benachrichtigungskanäle über E-Mail hinaus: SMS, Slack-App, Teams, Discord, native Webhooks, RSS, alles bei Instatus sofort enthalten. Lies die Liste oben, bevor du loslegst.
Was kostet Instatus?
Instatus kostet etwa 20 $/Mon. (Pro, geprüft am 20.10.2026), also 240 $ pro Jahr.
Was fehlt mir, wenn ich Instatus ersetze?
Ehrlich gesagt: Zustellbarkeit, die jemand anderes aufbaut und überwacht: Deine erste Vorfall-E-Mail ist zugleich dein erster Test der Versandreputation; Benachrichtigungskanäle über E-Mail hinaus: SMS, Slack-App, Teams, Discord, native Webhooks, RSS, alles bei Instatus sofort enthalten; Abonnements pro Komponente, Abmeldeverarbeitung und Double-Opt-in, um die du dich nicht kümmern musst; Den Feinschliff: geplante Wartungsfenster, Vorfallvorlagen, Zeitzonenbehandlung, einbettbare Widgets, öffentliche API; Echte Unabhängigkeit, sofern du nicht tatsächlich die Arbeit investierst, die Seite außerhalb deines eigenen Stacks zu hosten. Wenn dir davon etwas wichtig ist, zahl weiter.
Gibt es eine Open-Source-Alternative zu Instatus?
Es gibt keine ausgereifte Open-Source-Alternative, auf die sich verweisen ließe, und genau deshalb gibt es den Prompt auf dieser Seite.