← Blog
Geliştirme4 dk okumaYazar:

2026'da Telegram Mini App Nasıl Geliştirilir: Prototipten Günlük 60.000 Kullanıcıya

The Open Squad deneyiminden Telegram Mini App geliştirmeye dair tam rehber. Stack (Next.js, FastAPI, TON SDK), initData kimlik doğrulama, Stars ve USDT ödemeleri, dağıtım ve ölçekleme.

Telegram Mini Apps deneysel bir özellikten gerçek bir dağıtım platformuna büyüdü: her ay 200 milyon kullanıcı onları açıyor ve mesajlaşma uygulaması içinde ürün göndermenin en hızlı büyüyen yolu. The Open Earn'i 2024 başında başlattık ve 18 ay içinde 60.000 günlük aktif kullanıcıya ve 500.000+ tamamlanmış göreve büyüttük. Bu rehber, yaptıklarımız ve kendimize ilk gün söyleyeceklerimiz.

Mini App vs normal bot: hangisini ne zaman seçmeli

Telegram Bot, mesajlar üzerine bir sohbet arayüzüdür. Telegram Mini App ise Telegram içinde açılan ve mesajlaşma uygulamasının API'sine erişimi olan tam bir web uygulamasıdır.

Normal bot şu durumlarda yeterlidir:

  • Akış doğrusal: komutlar → yanıtlar (escrow bot, bildirim botu)
  • UI karmaşıklığı minimal
  • Prototip hızı önemli

Mini App şu durumlarda gereklidir:

  • Navigasyon, form, listelerle karmaşık UI
  • Gerçek zamanlı etkileşim
  • Telegram Payments veya Stars üzerinden ödemeler
  • Ürün katalogları, kullanıcı profilleri, feed

The Open Earn'de ikisini de çalıştırıyoruz: bildirimler ve onboarding için bir bot, ana arayüz (bakiye, çekme, istatistikler) için bir Mini App.

Stack: gerçekten kullandıklarımız

The Open Earn'in üretim stack'i, pazarlama gevezeliği yok:

Frontend (Mini App):

  • Next.js 16 (App Router, SSR) — hızlı ilk render ve landing'de SEO için
  • React 19 + TypeScript
  • @twa-dev/sdk — Telegram Web Apps SDK etrafında bir wrapper (tema, viewport, events)
  • TonConnect SDK — kullanıcının TON cüzdanını bağlamak için

Backend:

  • Python 3.12 + FastAPI — API sunucusu
  • aiogram 3.x — bot
  • PostgreSQL 16 — birincil depolama
  • Redis — oturum önbelleği, rate limiting, worker'lar için pub/sub
  • Celery — arka plan işleri (ödemeler, görev doğrulama)

Altyapı:

  • Bir dedicated sunucu (8 GB RAM, 4 vCPU)
  • Reverse proxy olarak nginx
  • Node süreçleri için PM2, Python için systemd
  • SSL için Let's Encrypt

Bu 50–100K DAU'ya kadar idare ediyor. Sadece 60K'yı geçtiğimizde yükseltmek zorunda kaldık — Postgres'i bir managed instance'a taşıdık.

Kimlik Doğrulama: initData ve sunucu tarafı doğrulama

En yaygın acemi hatası: Telegram.WebApp.initDataUnsafe'e güvenmek. Bu DevTools'ta sahteleştirilebilir.

Doğru akış:

  1. Mini App, başlatıldığında JS SDK aracılığıyla Telegram'dan initData (raw string) alır
  2. Bunu backend'inize Authorization: TelegramInitData ... ile gönderir
  3. Backend, bot token ile anahtarlanmış HMAC-SHA256 ile imzayı doğrular
  4. Geçerli imzada — user.id'yi çıkarın ve bir oturum tokeni verin

Python'da doğrulama:

import hmac, hashlib
from urllib.parse import parse_qs

def validate_init_data(init_data: str, bot_token: str) -> dict:
    parsed = parse_qs(init_data)
    received_hash = parsed.pop("hash")[0]
    data_check = "\n".join(f"{k}={v[0]}" for k, v in sorted(parsed.items()))
    secret = hmac.new(b"WebAppData", bot_token.encode(), hashlib.sha256).digest()
    expected = hmac.new(secret, data_check.encode(), hashlib.sha256).hexdigest()
    if not hmac.compare_digest(expected, received_hash):
        raise ValueError("Invalid signature")
    return parsed

Ayrıca auth_date'i kontrol edin — 24 saatten eski oturumları bırakın (replay koruması).

Ödemeler: Stars, TON, USDT

2026'da Telegram ekosistemi içinde para almanın üç gerçek yolu:

1. Telegram Stars (dijital ürünler için)currency: "XTR" ile Bot API: sendInvoice aracılığıyla. Yalnızca soyut satın alımlar. Telegram ~%30 alır.

2. TON doğrudan — TonConnect aracılığıyla: kullanıcı bir cüzdan bağlar ve işlemi imzalar. Ücretler bir sentin küçük bir kısmı.

3. TON üzerinde USDT (Jetton) — TON ile aynı ama bir stablecoin olarak. B2B ve sabit fiyatlı faturalama için kullanışlı.

The Open Earn'de TonConnect aracılığıyla USDT olarak kazanç ödüyoruz — kullanıcılar dolar tutarı görür, dalgalanan TON fiyatı değil. Minimum çekme: $1.

Dağıtım ve ölçekleme

İlk 10K DAU için en basit üretim düzeni:

[Cloudflare] → [nginx] → [Next.js on :3000] → [FastAPI on :8000] → [Postgres]
                                                  ↓
                                              [Redis]

30K DAU'da bizim için bozulan ne ve nasıl düzelttik:

  • Postgres connection pool tükendi — pgbouncer eklendi ve read/write ayrıldı
  • Redis OOM zirvelerde — maxmemory artırıldı, allkeys-lru'ya geçildi
  • Bot webhook latency — ağır kontroller Celery'e taşındı
  • Static asset CDN — Cloudflare R2'ye gönderildi

Önemli olan tek kural: ölç, tahmin etme. Hatalar için Sentry, metrikler için Grafana + Prometheus, ilk gün.

Farklı yapacağımız şeyler

İlk günden tekrar başlasaydık:

  1. Baştan 2 servise böl — public API (Mini App) ve private (admin/workers). Birleştirmek sonradan ayırmaktan ucuzdur.
  2. İlk günden feature flags gönder (Unleash, GrowthBook) — büyüme sırasında A/B testleri için yararlı olurdu.
  3. Basit formlar için özel bir REST katmanı yerine Next.js Server Actions kullan. Daha az kod.
  4. İlk gün güzel animasyonları atla — kullanıcılar işlev için gelir, parlatma için değil. Parlatma product-market fit sonrası mantıklı.
  5. İlk günden i18n inşa et — 12 dilde çeviriler trafiğimizi 4× artırdı, ama onları sonradan eklemek acı vericiydi.

Sırada ne var

2026'da Mini Apps artık "Telegram'ın deneyi" değil — gerçek bir dağıtım kanalı. Ürününüz mesajlaşma uygulamasının aktif kitlesiyle örtüşüyorsa, en azından bir prototip değer. Başlangıç stack'i küçük, risk yerel mobil uygulamadan daha düşük.

Bunun üretimde nasıl göründüğünü görmek istiyorsanız — The Open Earn açın veya doğrudan bot'a atlayın.