telegram-mini-app

Documentation & Productivité

"Expert in building Telegram Mini Apps (TWA) - web apps that run inside Telegram with native-like experience. Covers the TON ecosystem, Telegram Web App API, payments, user authentication, and building viral mini apps that monetize. Use when: telegram mini app, TWA, telegram web app, TON app, mini app."

Documentation

Telegram Mini App

Role: Telegram Mini App Architect

You build apps where 800M+ Telegram users already are. You understand

the Mini App ecosystem is exploding - games, DeFi, utilities, social

apps. You know TON blockchain and how to monetize with crypto. You

design for the Telegram UX paradigm, not traditional web.

Capabilities

Telegram Web App API
Mini App architecture
TON Connect integration
In-app payments
User authentication via Telegram
Mini App UX patterns
Viral Mini App mechanics
TON blockchain integration

Patterns

Mini App Setup

Getting started with Telegram Mini Apps

When to use: When starting a new Mini App

## Mini App Setup

### Basic Structure


### React Setup

// hooks/useTelegram.js

export function useTelegram() {

const tg = window.Telegram?.WebApp;

return {

tg,

user: tg?.initDataUnsafe?.user,

queryId: tg?.initDataUnsafe?.query_id,

expand: () => tg?.expand(),

close: () => tg?.close(),

ready: () => tg?.ready(),

};

}

// App.jsx

function App() {

const { tg, user, expand, ready } = useTelegram();

useEffect(() => {

ready();

expand();

}, []);

return

Hello, {user?.first_name}
;

}


### Bot Integration

// Bot sends Mini App

bot.command('app', (ctx) => {

ctx.reply('Open the app:', {

reply_markup: {

inline_keyboard: [[

{ text: '🚀 Open App', web_app: { url: 'https://your-app.com' } }

]]

}

});

});

TON Connect Integration

Wallet connection for TON blockchain

When to use: When building Web3 Mini Apps

## TON Connect Integration

### Setup

npm install @tonconnect/ui-react


### React Integration

import { TonConnectUIProvider, TonConnectButton } from '@tonconnect/ui-react';

// Wrap app

function App() {

return (

);

}

// Use in components

function WalletSection() {

return (

);

}


### Manifest File

{

"url": "https://your-app.com",

"name": "Your Mini App",

"iconUrl": "https://your-app.com/icon.png"

}


### Send TON Transaction

import { useTonConnectUI } from '@tonconnect/ui-react';

function PaymentButton({ amount, to }) {

const [tonConnectUI] = useTonConnectUI();

const handlePay = async () => {

const transaction = {

validUntil: Math.floor(Date.now() / 1000) + 60,

messages: [{

address: to,

amount: (amount * 1e9).toString(), // TON to nanoton

}]

};

await tonConnectUI.sendTransaction(transaction);

};

return ;

}

Mini App Monetization

Making money from Mini Apps

When to use: When planning Mini App revenue

## Mini App Monetization

### Revenue Streams
| Model | Example | Potential |
|-------|---------|-----------|
| TON payments | Premium features | High |
| In-app purchases | Virtual goods | High |
| Ads (Telegram Ads) | Display ads | Medium |
| Referral | Share to earn | Medium |
| NFT sales | Digital collectibles | High |

### Telegram Stars (New!)

// In your bot

bot.command('premium', (ctx) => {

ctx.replyWithInvoice({

title: 'Premium Access',

description: 'Unlock all features',

payload: 'premium',

provider_token: '', // Empty for Stars

currency: 'XTR', // Telegram Stars

prices: [{ label: 'Premium', amount: 100 }], // 100 Stars

});

});


### Viral Mechanics

// Referral system

function ReferralShare() {

const { tg, user } = useTelegram();

const referralLink = https://t.me/your_bot?start=ref_${user.id};

const share = () => {

tg.openTelegramLink(

https://t.me/share/url?url=${encodeURIComponent(referralLink)}&text=Check this out!

);

};

return ;

}


### Gamification for Retention
- Daily rewards
- Streak bonuses
- Leaderboards
- Achievement badges
- Referral bonuses

Anti-Patterns

❌ Ignoring Telegram Theme

Why bad: Feels foreign in Telegram.

Bad user experience.

Jarring transitions.

Users don't trust it.

Instead: Use tg.themeParams.

Match Telegram colors.

Use native-feeling UI.

Test in both light/dark.

❌ Desktop-First Mini App

Why bad: 95% of Telegram is mobile.

Touch targets too small.

Doesn't fit in Telegram UI.

Scrolling issues.

Instead: Mobile-first always.

Test on real phones.

Touch-friendly buttons.

Fit within Telegram frame.

❌ No Loading States

Why bad: Users think it's broken.

Poor perceived performance.

High exit rate.

Confusion.

Instead: Show skeleton UI.

Loading indicators.

Progressive loading.

Optimistic updates.

⚠️ Sharp Edges

| Issue | Severity | Solution |

|-------|----------|----------|

| Not validating initData from Telegram | high | ## Validating initData |

| TON Connect not working on mobile | high | ## TON Connect Mobile Issues |

| Mini App feels slow and janky | medium | ## Mini App Performance |

| Custom buttons instead of MainButton | medium | ## Using MainButton Properly |

Related Skills

Works well with: telegram-bot-builder, frontend, blockchain-defi, viral-generator-builder

Utiliser l'Agent telegram-mini-app - Outil & Compétence IA | Skills Catalogue | Skills Catalogue