Setup
Create a bot with @BotFather and give Postboi its token:
Commit a default chat id as chat.default.to in postboi.config.ts and the to can be omitted:
A chat id is a registered identity, not an address
A bot cannot message someone who hasn’t started a chat with it first, and you
address people by chat_id — a number you capture from an inbound update, not something
you can know in advance. That’s the same shape as a push subscription token, so it needs
somewhere to be stored. Slack, Discord and Teams have no
equivalent problem: there, the URL is the destination.
Titles
title renders bold, with the body safely below it — Postboi sends HTML parse mode with
everything escaped, so a message containing <, & or an underscore never breaks the
formatting or gets mangled by Markdown rules:
Development posts for real
Unlike SMS, Telegram is not intercepted in development. With no TELEGRAM_BOT_TOKEN configured, messages are captured by the dev inbox (or logged) instead of erroring.