I Built an Anonymous Feedback App for Telegram — Here's What I Learned
Remember Sarahah? The app that went viral in 2017, hitting #1 in 30+ countries with zero marketing budget? The concept was dead simple: share a link, get anonymous messages from friends.
I built something similar — but inside Telegram as a Mini App, with native monetization through Telegram Stars. Here's the full story.
🎯 The Idea
WhisprMe (@WhisprMe_bot) is an anonymous feedback service built as a Telegram Mini App. You get a unique link, share it with friends, and they write anonymous messages to you.
The hook? You can see a 3-word preview of each message, but the full text is blurred. Want to read it? Pay 15 Stars (~$0.26) or invite a friend.
The tagline: "Find out what people really think about you"
🏗️ Tech Stack
| Layer | Technology |
|---|---|
| Backend | Node.js + Express |
| Database | PostgreSQL (raw SQL, no ORM) |
| Frontend | React (Create React App) |
| Bot | Telegraf.js |
| Process Manager | PM2 (cluster mode) |
| Web Server | nginx |
| Payments | Telegram Stars API |
🔥 The Viral Mechanics
The killer feature is that sharing is mandatory, not optional. Want feedback? You HAVE to share your link. This is the same mechanic that made Sarahah explode.
Card Templates
Users can choose from 10 different sharing card styles:
- 🤔 "What do you think about me?"
- 💬 "Tell me anonymously what you're afraid to say in person"
- 👀 "Would you date me? Be honest"
- 🔥 "Rate me 1-10 and tell me why"
- ❤️ "Give me an anonymous compliment"
Each card generates a unique deep link (t.me/WhisprMe_bot?start=msg_username_hash).
The Blurred Message Hook
When you receive a message, you see the first 3 words + blurred text. It's psychologically impossible to ignore — you NEED to know what someone thinks about you.
Friend Portrait
After 5+ messages, you get an AI-generated "Anonymous Portrait" — a beautiful infographic showing how people see you: top words used, emotional profile, sentiment analysis. This is screenshot-worthy content that users share organically.
💰 Monetization with Telegram Stars
This is where it gets interesting. Telegram Stars are the native payment system for Mini Apps. No Stripe, no App Store commission, direct micropayments.
| Action | Price |
|---|---|
| Read a hidden message | 15 Stars |
| Reveal sender's city | 25 Stars |
| Reveal sender's contact | 49 Stars |
| Plus subscription (monthly) | 99 Stars |
| Pro subscription (monthly) | 299 Stars |
| Virtual gifts (Heart, Fire, Crown) | 30-200 Stars |
The Referral System
- Invite 1 friend → +5 free messages
- Invite 3 friends → unlimited for 7 days
- Friend signs up → +50 Stars bonus
Plus, Telegram's native Affiliate Program gives referrers 15% of all payments from referred users. Bloggers get 25%.
🛠️ Technical Deep Dive
Authentication
Telegram Mini Apps pass initData with a cryptographic signature. I validate it server-side:
function validateTelegramWebAppData(initData) {
const secret = crypto.createHmac('sha256', 'WebAppData')
.update(BOT_TOKEN).digest();
const checkString = Object.entries(parsed)
.sort(([a], [b]) => a.localeCompare(b))
.map(([k, v]) => `${k}=${v}`).join('\n');
const hash = crypto.createHmac('sha256', secret)
.update(checkString).digest('hex');
return hash === parsed.hash;
}
Stars Payment Flow
- Frontend calls
POST /api/payments/create-invoice - Backend creates invoice via Telegram Bot API
- Telegram shows native payment dialog
-
pre_checkout_query→ validate →successful_payment - Backend unlocks content
Anti-Abuse
- Rate limit: max 3 messages/day from one sender to one recipient
- Global IP-based hourly rate limit
-
basicToxicityCheck()filters toxic content before saving - Blurred preview shows only first 3 words
Database Design
Pure PostgreSQL with raw SQL queries. No ORM overhead. The schema is straightforward:
-
users— profiles withunique_slugfor URLs -
messages— withpreview(first 3 words),is_unlocked -
transactions— Stars payment history -
referrals,achievements,mood_words
Cluster Mode
PM2 cluster mode with multiple workers. Since PostgreSQL handles concurrency natively, no shared state issues.
📊 Features
- 📨 Inbox — Receive anonymous messages with blur effect
- 📤 Share — 10 card template styles for sharing
- 🎭 Portrait — AI sentiment analysis from messages
- 🏆 Leaderboard — Weekly/monthly popularity ranking
- 👤 Profile — Subscription management, referral stats
- 🎁 Gifts — Send anonymous virtual gifts with messages
- 😀 Reactions — Anonymous emoji reactions
🚀 Key Learnings
1. The viral loop IS the product
Don't add a "Share" button as an afterthought. Make sharing the core mechanic. If users can't use your product without sharing, congratulations — you've built a viral loop.
2. Telegram Stars remove friction
Traditional payments require credit cards, KYC, App Store approval. Stars are one tap. Users already have them. Conversion is dramatically higher.
3. Blurred content = irresistible curiosity
The preview-then-paywall approach works incredibly well for anonymous messages. People can't resist knowing what someone thinks about them.
4. Mini Apps are an untapped market
Telegram has 900M+ MAU. The Mini App ecosystem is still early. There's much less competition than the App Store or Play Store.
5. Referral programs that pay Stars actually work
When users earn actual currency (Stars → TON → real money), they're genuinely motivated to invite friends.
🔗 Try It
- Bot: @WhisprMe_bot
- Web: whisprme.app
Share your link, get anonymous messages, discover what people really think about you.
Built by a solo developer in ~3 weeks. Happy to answer questions in the comments!
Top comments (0)