Telegram Mini App’leri nasıl geliştiriyorum

2026-09-10

Telegram Mini App, kullanıcı zaten oturum açmış ve doğru sohbetteyken Telegram içinde açılan bir web uygulamasıdır. Tüm vaadi budur: yeni hesap yok, indirme yok, parola sıfırlama yok. Bunları her production web ürünü gibi geliştiririm: önde Next.js ve TypeScript, arkada Node.js, ayrıca Telegram’a özgü birkaç kural. NDA kapsamındaki son teslimatım, Next.js, Express ve MongoDB ile geliştirilmiş sanal ve fiziksel kartlara sahip bir fintech Web & Mini App’ti.

Her şey botla başlar. BotFather botu ve Mini App’i oluşturur. Kullanıcı uygulamayı menü düğmesinden, inline keyboard düğmesinden ya da startapp parametresi içeren doğrudan bir t.me bağlantısından açabilir; böylece yönlendirme kodu aktarabilir veya belirli bir ekrana derin bağlantı kurabilirim. Uygulama normal bir sunucudan HTTPS üzerinden sunulur. Geliştirme sırasında bir tünel Telegram’ı localhost’a yönlendirir; böylece yalnız masaüstü tarayıcısında değil, gerçek telefonda test ederim.

Kimlik doğrulamada asla kestirme yol kullanmam. Telegram uygulamaya kullanıcı id’si, adı, auth_date ve hash içeren initData verir. initDataUnsafe tam da adının söylediği şeydir: adı göstermek için uygundur, güvenmek için asla. Backend ham initData’yı bot token’ından türetilen HMAC imzasıyla doğrular, auth_date’in güncel olduğunu denetler ve ancak bundan sonra kendi oturumunu verir. Bot token’ı sunucudan çıkmaz. Fintech ürününde bu tek kontrol, «Telegram üzerinden giriş yaptı» ile «devtools kullanan herkes istediği kişi olabilir» arasındaki farktır.

Ardından Mini App’in webview’e yapıştırılmış bir site gibi değil, yerel uygulama gibi hissettirmesi gerekir. Açık ve koyu tema kullanıcının uygulamasını izlesin diye themeParams ve Telegram’ın CSS değişkenlerini okurum; kendi düğmelerimi çizmek yerine MainButton ve BackButton kullanırım, önemli eylemlere dokunsal geri bildirim eklerim, başlık ya da ana ekran göstergesinin altında hiçbir şey kalmaması için viewport ve safe area boşluklarına uyarım. Mobile-first burada slogan değil: oturumların çoğunda kullanıcı telefonda tek başparmağıyla gezinir.

Bot ve Mini App birlikte çalışır. Bot bildirim, onay ve makbuz yollar; Mini App form, liste ya da ödeme ekranlarını üstlenir. Webhook’lar Node.js backend’ine gelir; ödemeler ve durum için tek doğruluk kaynağı orasıdır — istemci talep eder ama karar vermez. Telegram içindeki dijital ürünler Stars ile ödenir; fiziksel ürün ve hizmetlerde ödeme sağlayıcıları kullanılabilir. Bu tercih tüm akışı şekillendirdiği için müşteriyle en başta netleştiririm.

initDataUnsafe’e güvenmeyi, masaüstü sitesini webview’e sıkıştırmayı, ödeme akışını yalnızca frontend’e bırakmayı ve işletmenin SEO’ya ya da ofis panosuna ihtiyacı varken web erişimi olmayan bir Mini App yapmayı reddederim. Telegram içinde bir ürün çıkarmak istiyorsanız kullanıcının sohbette tamamlaması gereken tek eylemi gönderin. Bot akışını, Mini App ekranlarını ve sunucuda kalması gerekenleri yanıtlayayım.

Bir sonraki ürüne kalacak birini verin.

Başlamaya hazır mısınız? Bana yazın — hemen başlayabilir ve kalabilirim. İki haftalık devir değil, uzun vadeli iş birliği. Projenizi, gereksinimleri ve ilerlemenin en iyi yolunu konuşalım.

Deneyim veya hizmetler hakkında sorun