Building

Telegram Mini Apps: what they are and when a bot needs one

By the Botable team

A Telegram Mini App is a web page that opens inside Telegram, launched from a bot. It suits interfaces a chat cannot express well — catalogues, calendars, dashboards — and is unnecessary for anything a few buttons already handle.

The short version

A Telegram Mini App is a web page rendered inside the Telegram client, launched from a bot's button or menu. It shares the bot's identity and receives signed information about the user who opened it, so it can be personalised without a separate login. The judgement call is when to use one. Chat plus inline buttons handles linear flows well — a question, a choice, a confirmation — and a Mini App adds loading time and a context switch for no gain there. Where it earns its place is in interfaces a message cannot express: a browsable catalogue with images and filters, a calendar, a chart-heavy dashboard, a form with interdependent fields. The security detail that matters is validation. The launch data is signed with your bot token, and any server accepting it must verify that signature; treating the user id as trustworthy because it arrived from the client is the standard vulnerability in Mini App backends.

Step by step

When is a Mini App the right choice?

When the interface genuinely needs more than a message can hold: a product grid with filters, a date picker, a dashboard with charts, a multi-field form where fields depend on each other. If your flow is a sequence of single choices, buttons are faster for the user and simpler for you.

How does the app know who opened it?

Telegram passes launch data including the user, signed with your bot token. Your backend must verify that signature before trusting any of it. Skipping the check means anyone can call your endpoints claiming to be any user, which is the most common Mini App security failure.

How is a Mini App launched?

From an inline keyboard button, from the bot's menu button, or from a direct link. Register the app with @BotFather using /newapp. A bot can have more than one, which suits a customer-facing catalogue and a separate internal admin view.

What makes a Mini App feel native?

Using Telegram's theme parameters so it matches the user's light or dark setting, using the platform's own main button rather than drawing your own at the bottom, and handling the back gesture. A Mini App that ignores the theme reads as a website in a frame, which is exactly the impression to avoid.

What catches people out

  • Never trust launch data without verifying its signature server-side
  • Ignoring Telegram's theme parameters makes the app look pasted in rather than part of the client
  • A Mini App adds a load step; for linear flows it is slower than the buttons it replaced

Questions

Can a Mini App take payments?

Yes — it can trigger a Stars invoice through the bot, so browsing happens in the app and the payment confirmation happens in Telegram's own interface. That is the usual pattern for a catalogue.

Does a Mini App replace the bot?

No. The bot is still the identity, the notification channel and the entry point. Most products end up using both: the app for browsing and configuration, the chat for alerts and quick actions.

Want a bot that does this?

Describe it in plain language and Botable writes the code, gives the bot its own database, deploys it and keeps it running. Everything on this page is handled for you — the token, the webhook, the storage, the hosting.

Build a bot

Keep reading

Bots that use this

All twenty-five guides