Telegraft

Comparison

The tap out of the app, and what it costs

A Telegram Mini App keeps checkout inside the chat; a web checkout sends the customer to a browser. The Mini App removes a transition that reliably sheds customers. It gives up search indexing, unconstrained page weight, and the ability to reach anyone not in Telegram.

The tap out of the app, and what it costs: the decision in facts

Compared against
A web checkout
Dimensions compared
8, including transitions in the flow and identity
Where we lose: Search discoverability
A Mini App will never rank for anything

As of 2025-10-01, Telegram Bot API 13.4

What is actually being compared

Every transition in a purchase flow costs some proportion of the people going through it, and leaving the app is one of the more expensive ones. The customer taps a link, a browser opens, the page loads without the session they had, and they are somewhere unfamiliar being asked for card details. Some come back. The share that does not is the cost of the transition, and it is larger than most teams assume before measuring.

A Mini App removes that transition entirely. The storefront opens over the chat, the identity of the user is already established through signed `initData`, and their wallet or payment method is a tap away. For an audience that arrived through Telegram in the first place, this is the single largest conversion lever available.

What it gives up is worth stating clearly. A Mini App is not crawlable, so it will never rank in search — anything relying on organic discovery needs a web presence regardless. It runs in a webview with its own viewport and storage quirks that differ between iOS and Android. And it reaches only people inside Telegram, which for a business whose customers arrive from search or from an advertising campaign is most of them.

Side by side

Dimensiona web checkoutA custom build
Transitions in the flowOne out of the app and one back, each shedding customers.None. The storefront opens over the conversation.
IdentityLogin, or an anonymous session with details entered manually.Already established through signed initData, verified server-side.
Search discoverabilityFully indexable. This is a decisive advantage where discovery matters.Not crawlable, and not intended to be.
ReachAnyone with a browser.Telegram users only.
Payment optionsAny provider, any method, including saved cards.Stars, TON, or a provider through the Payments API. Fewer options.
Page weight toleranceWhatever you can justify. A slow page is your own problem.A webview over a chat. Weight is felt immediately and harshly.
Platform consistencyOrdinary browser differences, well understood.Webview storage and viewport differ between iOS and Android in ways that need testing.
Return visitsA bookmark or a search. Most people do neither.The chat is still there, with the previous order in it.

Which one fits your situation

Choose a web checkout when

  • Customers find you through search, and the storefront needs to be indexable.
  • Your audience is general rather than already inside Telegram.
  • You need payment methods only a full web checkout supports, including saved cards across sessions.
  • The catalogue is large with faceted search, which a webview will handle worse than a browser.
  • You already have a web store that works and the marginal gain does not justify a second surface.

Choose a custom build when

  • Your audience already arrived through Telegram, so discovery is not the job the storefront does.
  • Repeat purchase matters, and the chat carrying the previous order is worth more than a bookmark nobody uses.
  • You are selling digital goods with Stars or accepting TON, both of which live inside Telegram.
  • The purchase is simple enough that a browser adds friction without adding capability.
  • You are measuring drop-off at the tap out of the app and it is material.

Where we lose

  • Search discoverability, completely. A Mini App will never rank for anything, and a business relying on organic discovery needs a web presence whatever else it builds.
  • Reach beyond Telegram. Anyone arriving from a search result, an email or an advertisement is outside the Mini App entirely.
  • Payment breadth. A web checkout supports saved cards, wallets and local methods a Mini App cannot reach.
  • Catalogue scale. A large faceted catalogue works badly in a webview, and customers will use the website instead — correctly.

If you are already on it, how the move works

  1. Measure the drop-off at the transition first

    How many people tap the link and how many complete the purchase. Without that number the Mini App is a guess, and it is a number most businesses can get from existing analytics in an afternoon.

    deep-link
  2. Build the Mini App against the same backend

    One catalogue, one order system, two front ends. Duplicating the backend produces two sources of truth about stock, which is a worse problem than the one being solved.

    mini-app
  3. Validate initData before anything reads or writes state

    The HMAC check against the bot token, plus the freshness check on auth_date. Without both, the basket endpoint accepts anything from anyone, which is not a storefront.

    web-app-initdata
  4. Route Telegram traffic to the Mini App and everything else to the web

    The channel decides the surface. Sending a search visitor into a Mini App is not possible, and sending a Telegram user to the web gives back exactly the transition being removed.

    deep-link
  5. Compare completion on the same catalogue

    Same products, same prices, two surfaces. That comparison is the only honest measure of whether the Mini App earned its build cost.

    webhook

Questions people ask when deciding

How much does the tap out of the app actually cost?

More than most teams assume and less than vendors claim, and it is measurable from your own analytics — how many tap the link against how many complete. Getting that number before building is an afternoon of work and it decides the whole question.

Can a Mini App replace our website?

No. It is not crawlable and will never rank, so anything depending on organic discovery still needs a web presence. The Mini App is a conversion surface for people who already found you, which is a different job.

Do we have to build the catalogue twice?

No, and doing so is a mistake. One backend, one catalogue, two front ends. Duplicating the backend gives you two sources of truth about stock, which is worse than the drop-off you set out to fix.

What is initData and why does it keep coming up?

A signed string Telegram passes to the webview identifying the user. Verifying its HMAC against your bot token, and checking its age, is what makes a request trustworthy. Without both your order endpoint accepts anything, which is the most common Mini App vulnerability.

Does a Mini App work the same on iOS and Android?

Mostly, with real differences in webview storage and viewport behaviour. State is kept server-side keyed by validated initData rather than in the client, precisely because client persistence behaves differently across the two.

What about a large catalogue?

A webview handles faceted search over thousands of items badly, and customers will go to the website instead. That is the correct outcome, and it means the Mini App suits a curated selection rather than a full catalogue.

Related reading