Case study · 2026
A padel club that takes bookings in Telegram and sells the spots on a court one at a time
STENKA is a padel club with four indoor courts. We built the club a website, a bot and a Telegram Mini App, an app that opens right inside Telegram with nothing to install. The club gets bookings without messaging, and whoever books a court doesn’t have to hunt for the other three players in group chats. The club itself is fictional; the product is real and running.
- Client
- STENKA, a padel club
- Format
- Telegram Mini App, website, bot
- Languages
- Russian
- Status
- Showcase project, live
Падел на Яузе, когда на улице ночь
Четыре крытых корта в бывшем цеху на Серебрянической набережной. Восемь минут пешком от Чкаловской, вдоль реки.

Как забронировать
Без регистрации. Каждый платит свою часть.
Сколько стоит
За корт на 90 минут и за человека при четверых.
Ракетка и мячи — 400 ₽ с человека.
01 / The problem
How a padel club takes bookings
A padel court is built for four, but one person, the organiser, usually books and pays for it. They message or call the club, hunt for the other three in group chats and then collect money from them.
For the club, this way of booking costs time and money. The front desk answers messages asking whether a court is free tonight. When bookings are taken in a chat, it is easy to promise the same time to two people. And if no fourth player is found, the booking is cancelled and the court stands empty.
Players book the court without calls or messages, other club players take the free spots in a match, and the front desk only has to greet everyone.
02 / How booking works
From picking a time to four players on court
Sergey books an evening court and brings a friend. Mark finds the match among those that still have free spots and takes one of them. Anya takes the last spot through a link Sergey sent her.
02 / How booking works01 / 06
Free times are visible in Telegram, so nobody has to ask the club
The app opens inside Telegram, from the club’s bot or a button on the site, with no sign-up. One schedule covers all four courts: the player picks only a time, and the app finds a free court for it.
Август
Сегодня, 25 августа
03 / Who is playing
A player sees who is already in a match before taking a spot in it
For strangers to take spots in someone else’s match, they need to know who they will be playing with, so every player has a short profile.
03 / Who is playing01 / 03
The app asks for level, court side and preferred time
Players rate their own level on a four-step scale, from beginner to confident. Side matters because padel is played two against two, and in each pair one player stands on the left and the other on the right. The questions come up on first launch and can be skipped: booking doesn’t depend on the answers.
Август
Как играете?
Чтобы в открытых матчах вы попадали к своим по уровню.
04 / What the business gets
What the club stops doing by hand
A booking takes no messages to the front desk
Available times are on the site and in the app, and the club’s bot sends the address and prices in reply to the /club command. Nobody messages the front desk to ask whether a court is free tonight.
No double bookings
The database won’t accept a second booking for the same court and time, so nobody argues at the front desk over whose booking it is.
If friends can’t make it, other club players can take the spots
Every club player sees the open spots in the app, and anyone can take one. The organiser doesn’t have to cancel the game, and the club keeps the booking for that evening.
Whoever takes an open spot pays for it at the front desk
The court price is split into four spots, and each player’s amount is recorded in the booking and shown on their ticket. The organiser pays only for themselves and the friends they bring, and doesn’t collect money from anyone else.
If a booking is cancelled or not confirmed, the court frees up without the front desk stepping in
If the organiser doesn’t confirm within six minutes, or cancels, the time shows as free again in the app and on the site. Nobody has to release the booking by hand.
A player books a court in three steps
The nearest available time is already selected in the app: all that is left is to tap «Забронировать» (“Book”), mark who is playing and confirm.
05 / Design
The mark: a ricochet off the wall
The ball comes in shallow, hits the wall and leaves steeper, downward. The trail narrows towards its tail, and the approach and rebound angles differ because the ball is losing speed. The apex is hidden inside the wall, so what you see is the hit rather than a joint between two stripes.
The wall is pulled in from the edge on purpose. Telegram crops avatars to a circle, and whatever is pressed against the square's border disappears first. The mark is built on a 64 grid and checked at 24 pixels.
The app follows Telegram’s theme
Background, cards and text turn light or dark with the Telegram theme. The court, lamps and ball on the ticket stay the same, so the ticket looks identical in both themes.
Times and prices line up in columns
Times, prices, scores and booking codes are set in a typeface where every digit has the same width, so they line up in the schedule and the right time is found at a glance.
Orange is used only for actions
In the app orange means a button you can press, which is why it appears neither in the club’s mark nor on the racket. The only thing that glows on screen is the lamps above the court on the ticket.
06 / Club website
The site shows free times and opens booking in Telegram
The site answers the questions people usually message a club with: is a court free today, what it costs per person and how to book.
People move from the site to the app already knowing when they want to play and what they will pay.
- Free times on the first screen come from the same database as the app, so the site and the app always match
- The booking button opens the app in Telegram, with nothing to install
- Prices, opening hours and directions to the club are on the same page
Падел на Яузе, когда на улице ночь
Четыре крытых корта в бывшем цеху на Серебрянической набережной. Восемь минут пешком от Чкаловской, вдоль реки.

Как забронировать
Без регистрации. Каждый платит свою часть.
Сколько стоит
За корт на 90 минут и за человека при четверых.
Ракетка и мячи — 400 ₽ с человека.
07 / Reliability
No court can be double-booked
If two players tap «Забронировать» (“Book”) for the same time at the same moment, the first gets the court and the app gives the second the next free one.
A player is turned away only when all four courts are taken at that time: «Это время только что заняли. Выберите другое» (“This time was taken a moment ago. Choose another”). If a player taps twice, or a bad connection makes the app send the booking again, no second booking appears either: the player gets the one already created. The ban on two bookings of one court at the same time is written into the database itself, so it holds even if the app glitches.
08 / Scope
What the project includes
Telegram Mini App
- One schedule for all courts, with the nearest free time preselected
- The app picks the court and holds it for six minutes while the player confirms
- Line-up: spots for your own friends and spots open to any club player
- Player profile: level, court side, preferred time
- Stats from bookings: matches played, hours on court, frequent partners
- Ticket with the booking code, line-up and directions to the club
- List of open matches and invitations to a match by link
- Your games: the organiser can cancel a booking, a player can leave someone else’s match
- Club info: prices, opening hours, address, rules
Website and bot
- Club website with free times from the same database as the app
- Bot: address, prices and buttons that open the app
- Club mark, bot avatar and app cover
Foundation
- Next.js on Cloudflare Workers
- Neon Postgres: the ban on double bookings is written into the database itself
- The amount each player pays is recorded in the database
- Bookings are tied to the player’s Telegram account, so no sign-up is needed
09 / Honestly
What the showcase version doesn’t have
STENKA is a showcase project: the club is invented to show booking at work.
The address, prices and schedule are placeholders.
There is no online payment: the showcase has no legal entity or payment provider, so people pay on site. For the same reason, the cancellation and no-show rules are only written in the app: nobody is charged for cancelling later than 12 hours before the game or for a player who didn’t show up.
There is no admin panel: the front desk can’t see the bookings, so there is nothing to check a player’s booking code against and nowhere to mark payments. Prices and opening hours are changed by the developer.
The bot doesn’t send notifications yet: no match reminders, no message when someone takes a spot or a booking is cancelled. Players check the line-up on the ticket.
Need the same kind of booking?
The setup suits any hourly rental: courts, studios, meeting rooms. Two parts carry over to any of them unchanged: the slot is held for the customer while they book, and the same time can’t be booked twice. Selling by the spot helps wherever several people share one slot. The first conversation is free: we will go through your process and tell you what you actually need.