Rukki.pro: backend, Telegram bot and marketplace flows
Backend and bot development for a marketplace ecosystem: REST API for mobile/web/bot clients, referral system, notifications, socket.io chats, Redis communication, recurring payments and Telegram Web App.
Rukki.pro was a marketplace ecosystem where the backend served a mobile app, a web interface and a Telegram bot. The bot was not just a notification channel. It had user-facing flows, manager/admin scenarios, mass broadcasts, order status subscriptions and payments.
The project evolved gradually: some logic lived in the monolith, while some features had to be moved into separate services. The task was not only to add endpoints, but also to reduce coupling between the core backend, bot and notification flows.
My Role
I worked on the monolith backend, the Telegram bot backend and parts of the Telegram Web App.
In the monolith I handled:
- REST API for mobile, web and Telegram bot clients;
- referral system: registration via partner links and commission after completed orders;
- Swagger and Notion documentation;
- notification service covering SMS, email, push, web push and Telegram;
- socket.io service for chats and order status notifications;
- replacing direct HTTP calls to the bot with Redis-based communication.
In the Telegram bot:
- designed the NestJS/Telegraf architecture;
- logged user actions in MongoDB;
- built management panels for managers and admins;
- implemented mass broadcasts for new orders;
- implemented subscriptions to order status updates;
- worked on recurring payments and integration with the Impaya payment gateway.
In the Telegram Web App:
- helped structure the frontend using feature-sliced design;
- built hooks for Telegram Web App API: main button, back button, vibration feedback and related flows;
- worked on authorization through encrypted Telegram ID transfer to the bot backend.
Technical Focus
One important transition was replacing direct HTTP communication with the bot where it created unnecessary coupling. Redis-based communication made the flow more event-oriented: the backend could publish a change and the bot could process it independently.
Another important area was real-time communication and notifications. Marketplace flows depend heavily on order statuses, so users needed to quickly receive updates about new orders, responses, status changes or chat messages. This required a separate socket.io service and careful integration with the core backend.
Result
The project gave me hands-on experience with a product ecosystem where one backend serves multiple clients and communication channels. It was an important step from simply writing APIs toward designing relationships between web, mobile, bot, notifications, payments and real-time flows.