Case 13 / 17 · Telegram Web App · 2026
Dating WebApp
A minimal dating app built into Telegram as a web app, with swipe mechanics and real-time chat.
- Development time: 14 days
- Components: 20+
- WebSocket events: 15+
- Rate limits: 5 rules
Challenge
Dating apps are hard to ship because of app-store moderation, user acquisition is expensive, and there was no simple way to quickly build a mini app inside Telegram.
Solution
A full-featured Telegram Web App with a React frontend and an Express backend on SQLite. An intuitive swipe interface, WebSocket chat for real-time conversations, a verification system and profiles.
Highlights
React 19 + TypeScript + Express + SQLite · WebSocket real-time · 20+ components · Production-ready
What was built
- Swipe mechanics: swipe left to pass, swipe right to like, super likes available
- Real-time WebSocket chat between matches with status sync
- Advanced filters: gender, orientation, age, distance, dating goals
- User profile: photo upload with a crop tool, editable bio and interests
- Profile verification: an authenticity check for safety
- Badges and statuses: different badge types (verified, premium, etc.)
- Reports: a way to flag inappropriate behaviour
- Music taste: shows what the person listens to (Spotify, Apple Music and more)
- Activity timestamps: when the user was last active
- A referral system: bringing in new users with unique codes
- A dark theme with seasonal variations: minimal design with ambient effects
- A photo gallery and editing tools
- Admin panel: user management, verification, moderation
- Rate limiting: flood protection (40 swipes/min, 30 messages/min)
- Telegram initData validation via HMAC-SHA256
- Image optimisation via Sharp (WebP, compression)
- Error tracking with Sentry
- WAL (write-ahead logging) in SQLite for concurrency
- Lazy-loaded components and smooth transition animations
- Mobile optimisation and responsiveness
Stages
- UX and prototyping (1 day) — Designing the swipe mechanics, the chat system and the matching model
- Backend (4 days) — Express API, SQLite with WAL, a WebSocket server, the matching algorithm
- Frontend (5 days) — React components, swipe mechanics, real-time chat, filters, profiles
- Security (2 days) — Telegram initData validation, rate limiting, Sentry, profile verification
- Optimisation and deployment (2 days) — Sharp image processing, lazy loading, mobile optimisation, deployment
Next project: Support Hub