Most monitoring tools cost money. Datadog, PagerDuty, Sentry — they all have free tiers that run out fast. But if you’re running a side project or early-stage SaaS on a VPS, you probably don’t need a full observability platform. You need to know when something breaks.
Here’s how I added real-time error notifications to a Go web app using Telegram’s Bot API. Zero cost, zero dependencies, about 100 lines of code.
The Problem
I had a bug in production that went unnoticed for days. An AI service integration was using an invalid model ID, causing every single follow-up email generation to fail silently. The errors were in the logs, but nobody was checking the logs.
I needed something that would tap me on the shoulder when things went wrong.
Why Telegram
I considered several free options:
ntfy.sh — great, but requires installing another app
Discord webhooks — works, but I don’t live in Discord
Email alerts — too easy to ignore
Telegram — already on my phone, simple HTTP API, no webhooks to configure
Telegram’s Bot API is just a POST request. No OAuth, no SDKs, no webhook endpoints to host.