← Blog
Pengembangan5 menit bacaOleh:

Cara Membuat Telegram Mini App di 2026: Dari Prototipe hingga 60.000 Pengguna Harian

Panduan lengkap pengembangan Telegram Mini App dari pengalaman The Open Squad. Stack (Next.js, FastAPI, TON SDK), autentikasi initData, pembayaran Stars dan USDT, deployment, dan scaling.

Telegram Mini Apps telah berkembang dari fitur eksperimental menjadi platform distribusi nyata: 200 juta pengguna membukanya setiap bulan, dan ini adalah cara tercepat untuk merilis produk di dalam messenger. Kami meluncurkan The Open Earn di awal 2024 dan menumbuhkannya menjadi 60.000 pengguna aktif harian dan 500.000+ tugas yang diselesaikan dalam 18 bulan. Panduan ini adalah apa yang kami lakukan dan apa yang akan kami katakan kepada diri kami sendiri di hari pertama.

Mini App vs bot biasa: kapan memilih yang mana

Telegram Bot adalah antarmuka chat di atas pesan. Telegram Mini App adalah aplikasi web lengkap yang terbuka di dalam Telegram dan memiliki akses ke API messenger.

Bot biasa cukup ketika:

  • Alurnya linear: perintah → balasan (escrow bot, notification bot)
  • Kompleksitas UI minimal
  • Kecepatan prototipe penting

Anda butuh Mini App ketika:

  • UI kompleks dengan navigasi, formulir, daftar
  • Interaktivitas real-time
  • Pembayaran melalui Telegram Payments atau Stars
  • Katalog produk, profil pengguna, feed

Di The Open Earn kami menjalankan keduanya: bot untuk notifikasi dan onboarding, Mini App untuk antarmuka utama (saldo, penarikan, statistik).

Stack: yang sebenarnya kami gunakan

Stack produksi The Open Earn, tanpa basa-basi marketing:

Frontend (Mini App):

  • Next.js 16 (App Router, SSR) — untuk first paint cepat dan SEO di landing
  • React 19 + TypeScript
  • @twa-dev/sdk — wrapper di sekitar Telegram Web Apps SDK (tema, viewport, events)
  • TonConnect SDK — untuk menghubungkan TON wallet pengguna

Backend:

  • Python 3.12 + FastAPI — server API
  • aiogram 3.x — bot
  • PostgreSQL 16 — penyimpanan utama
  • Redis — cache sesi, rate limiting, pub/sub untuk worker
  • Celery — pekerjaan latar belakang (pembayaran, verifikasi tugas)

Infrastruktur:

  • Satu server dedicated (8 GB RAM, 4 vCPU)
  • nginx sebagai reverse proxy
  • PM2 untuk proses Node, systemd untuk Python
  • Let's Encrypt untuk SSL

Ini menangani hingga 50–100K DAU. Kami hanya harus upgrade ketika melewati 60K — kami memindahkan Postgres ke managed instance.

Autentikasi: initData dan validasi sisi server

Kesalahan pemula yang paling umum: mempercayai Telegram.WebApp.initDataUnsafe. Itu bisa dipalsukan di DevTools.

Alur yang benar:

  1. Mini App menerima initData (raw string) dari Telegram melalui JS SDK saat diluncurkan
  2. Ia mengirimkannya ke backend Anda di Authorization: TelegramInitData ...
  3. Backend memvalidasi tanda tangan dengan HMAC-SHA256 yang dikunci dengan bot token
  4. Pada tanda tangan valid — ekstrak user.id dan terbitkan token sesi

Validasi di Python:

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

Periksa juga auth_date — buang sesi yang lebih tua dari 24 jam (perlindungan replay).

Pembayaran: Stars, TON, USDT

Tiga cara nyata untuk menerima uang di dalam ekosistem Telegram pada 2026:

1. Telegram Stars (untuk barang digital) — melalui Bot API: sendInvoice dengan currency: "XTR". Hanya pembelian intangible. Telegram mengambil ~30%.

2. TON langsung — melalui TonConnect: pengguna menghubungkan dompet dan menandatangani transaksi. Biaya hanya pecahan sen.

3. USDT di TON (Jetton) — sama seperti TON tetapi sebagai stablecoin. Berguna untuk B2B dan billing harga tetap.

Di The Open Earn kami membayarkan penghasilan dalam USDT melalui TonConnect — pengguna melihat jumlah dolar, bukan harga TON yang berfluktuasi. Penarikan minimum: $1.

Deployment dan scaling

Layout produksi paling sederhana untuk 10K DAU pertama:

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

Apa yang rusak bagi kami pada 30K DAU dan bagaimana kami memperbaikinya:

  • Postgres connection pool habis — menambahkan pgbouncer dan memisahkan read/write
  • Redis OOM saat puncak — menaikkan maxmemory, beralih ke allkeys-lru
  • Bot webhook latency — memindahkan pemeriksaan berat ke Celery
  • Static asset CDN — push ke Cloudflare R2

Satu aturan yang penting: ukur, jangan menebak. Sentry untuk error, Grafana + Prometheus untuk metrik, hari pertama.

Apa yang akan kami lakukan berbeda

Jika kami memulai lagi di hari pertama:

  1. Bagi menjadi 2 service sejak awal — API publik (Mini App) dan privat (admin/workers). Menggabungkan lebih murah daripada memisahkan nanti.
  2. Kirim feature flags sejak hari pertama (Unleash, GrowthBook) — akan berguna untuk A/B test selama pertumbuhan.
  3. Gunakan Next.js Server Actions alih-alih lapisan REST kustom untuk formulir sederhana. Lebih sedikit kode.
  4. Lewati animasi cantik di hari pertama — pengguna datang untuk fungsi, bukan polesan. Polesan masuk akal pasca product-market fit.
  5. Bangun i18n sejak hari pertama — terjemahan di 12 bahasa melipatgandakan trafik kami 4×, tetapi memasangnya kemudian sangat menyakitkan.

Apa selanjutnya

Mini Apps di 2026 bukan lagi "eksperimen Telegram" — mereka adalah saluran distribusi nyata. Jika produk Anda tumpang tindih dengan audiens aktif messenger, setidaknya layak dibuat prototipe. Stack awal kecil, risikonya lebih rendah daripada aplikasi mobile native.

Jika Anda ingin melihat bagaimana ini terlihat dalam produksi — buka The Open Earn atau langsung masuk ke bot.