Clicker
A Telegram Mini App where a once-a-day claim feeds a small economy: chat, streaks, a garden, and a public leaderboard.
A daily loop inside Telegram
Clicker lives at points.laska-digital.ru. People sign in with Telegram and open it as a Mini App. The day boundary is Europe/Moscow, so the claim, the streak, and the evening reminder share one calendar.
Points are the currency. They pay for messages in a shared chat, and longer streaks, likes, and referrals unlock achievements. A garden, loot boxes, and an idle spice counter give the balance somewhere else to go.
What players do
- Claim points once a day and keep a streak
- Spend points on chat messages, then reply and like
- Unlock achievements, including ones that stay hidden until earned
- Invite friends and climb leaderboards
- Tend a garden, open boxes, and run an idle spice counter
- Trade points for a VPN promo code
How it is built
Three clients talk to one API. The Mini App is Vue 3 with Vite, Pinia, and Tailwind. The admin panel is a separate Vue app on the same domain, under /admin/, for stats, runtime settings, and Telegram broadcasts.
- Mini App
- Vue 3, Vite, Pinia, Tailwind
- API
- Go, Gin, Postgres
- Bot
- Python, aiogram, WebApp button
- Admin
- Vue SPA, separate admin token
The Go service splits users, points, messages, achievements, garden, and admin into their own packages behind /api. A Python bot on a second host opens the Mini App. Reminders run inside the API process; a small activity runner sits beside it. There is no Redis queue — Postgres is the only store, and knobs such as message cost and referral bonus live in a settings table rather than in env files.