Nie wieder einen Server-Fehler verpassen
Fehler-Mails gehen im Posteingang unter, Dashboards helfen nur, wenn man sie öffnet. Eine Zeile Code im catch-Block, und jede Exception landet auf deinem Handy – mit einem Alarm-Sound, den du erkennst, bevor du überhaupt aufs Display schaust.
Fehler-Alerts aus jedem catch-Block
Dein Endpoint ist nur eine URL – jede Sprache, die einen HTTP-POST senden kann, kann dich alarmieren. Ohne SDK, ohne API-Key:
try {
await chargeCustomer(order);
} catch (err) {
await fetch("https://api.webhooky.app/DEIN_KEY", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
title: "🚨 chargeCustomer fehlgeschlagen",
message: String(err).slice(0, 400),
}),
});
throw err;
}
title und message überschreiben die Standardtexte pro Request – ein einziger „Fehler“-Endpoint deckt dein ganzes Backend ab, und die Benachrichtigung selbst sagt dir, was wo kaputt ist. Mit Payload speichern wartet der komplette Fehlerkontext im Verlauf der App.
Das Cha-Ching für dein eigenes Produkt
Derselbe Trick funktioniert für die guten Nachrichten. Ein POST im Payment-Success-Handler, und dein Handy macht bei jedem Verkauf Kassa-Klingeln; einer bei der Registrierung, und Neukunden klingen wie ein Level-Up:
await fetch("https://api.webhooky.app/SALES_KEY", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
title: "💰 Neues Abo",
message: `${plan.name} · ${plan.price} € · ${customer.email}`,
}),
});
Warum die Sounds den Unterschied machen
Lege pro Signal einen Endpoint an und gib jedem seinen eigenen Sound: Alarm für Fehler, Registrierkasse für Verkäufe, Level-Up für Registrierungen. Nach einem Tag schaust du nicht mehr aufs Handy – du hörst, ob dein Produkt gerade Geld verdient oder gerade kaputtgegangen ist. Genau darum geht's.
Funktioniert überall, wo dein Code läuft
- Serverless Functions – Cloud Functions, Lambda, Vercel, Cloudflare Workers.
- Cronjobs & Skripte – ein curl bei Fehlschlag (
|| curl -X POST …). - CI-Pipelines – ein Step mit
if: failure(), siehe GitHub- & CI-Anleitung. - Alles andere – was HTTP spricht, erreicht dein Handy. API-Doku →