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.

The Implementation

Step 1: Create a Bot