burneh
Bots

A Telegram bot that does real work, not just replies.

Slash commands, inline keyboards, and jobs that run in the background while the bot stays responsive, all behind one token you control.

Drive it — fire /report to kick off a real background job, then hit /ping while it runs and watch it answer instantly.

@your_bot · command console
telegram
Ready — fire a command below.
/report
queued report #0 · running in the background
report #0 ready · report.pdf delivered
job queue0 running · ping ~12ms
report #0delivered

work runs off to the side · the chat never blocks on it

Fast replies now, slow work on a queue.

What you just operated is one pass through this. The trick to a bot that never freezes is the split at the router: quick commands answer inline, while anything slow is handed to a queue so the update returns immediately, and the result is delivered back when it's ready.

updatefrom Telegramwebhookverify tokenroutermatch + authhandlerinstant replyreplyinline, nowenqueuelong jobjob queueretryingworkerruns itfastslowdelivers when done0102030405
01
Verify

Every update's secret token is checked, so only real Telegram calls are handled.

02
Route

The command and its arguments are matched to a handler, with per-command permissions.

03
Fast path

A quick command replies inline, right away. /ping never waits on anything.

04
Slow path

A long job is enqueued, so the update returns instantly instead of timing out.

05
Report back

The worker runs it and delivers the result into the chat when it's done.

A job that fails and lives to retry.

Off to the side, each job has its own life. A worker picks it up and runs it; on success it delivers into the chat. On failure it doesn't just vanish, it retries with backoff, and only after it has truly given up does it tell you it couldn't.

Runs off the request

The update returns instantly; the work happens on a worker, not in the reply.

Retries with backoff

A transient failure is retried on a growing delay, not thrown away on the first error.

Reports back either way

Success delivers the file into the chat; a final failure pings you with the reason.

enqueuedon the queueworker runsprogresssucceeded?checkdeliverinto the chatretry× backoffnotifygave up · reasonyesno

Commands, buttons, and a queue behind them.

Everything a Telegram bot needs to be a tool and not a toy: a proper command set, inline UI so nobody memorizes syntax, and background work that doesn't stall the chat.

Slash commands

A real command set with arguments, help text, and per-command permissions.

Inline keyboards

Tap-to-act buttons and menus, so a user never has to remember syntax.

Background jobs

Slow work runs on a queue with retries, and reports back when it's done.

Group & DM aware

Knows the difference, respects admin rights, and won't spam a channel.

The demo bots reply. A useful one does work while you wait, without going dark.

It's easy to make a bot that answers canned messages. The moment a command has to generate a report, hit an API, or crunch something real, a naive bot freezes and Telegram times the update out. The engineering that matters is the queue behind the chat: the update returns instantly, the slow work runs on a worker that retries, and the result finds its way back to you. We build the commands, and we build the machinery that keeps them honest under load.

A Telegram bot that carries real workflows.

Slash commands and inline keyboards on the front, a retrying job queue on the back, and a bot that stays responsive while the slow work runs.