Wings of Desire
1987 · West Germany · Wim Wenders · 128 min
The angels in this film sit on rooftops and listen to what people below are thinking. We open every season with it, out of professional courtesy.
20 seats left
Case study · 2026
DARK is a 24-seat rooftop cinema. We built an app that opens right inside Telegram (a Telegram Mini App), a website and a bot so guests book without messaging the venue: they choose a night and seats, decide which seats come with a thermos of something hot, get a ticket with a booking code and, if plans change, cancel the booking themselves. The cinema is fictional; the product is real and running.
The owners don’t have to answer questions about free seats, write bookings in a notebook or work out from messages how many thermoses of something hot to brew for a screening.
the site and the app show the same number of free seats: it comes from one database
01 / The problem
At a small venue, bookings usually come in by direct message: a guest writes, one of the owners checks a notebook and replies. Each booking takes several messages: which night, how many seats, where to sit, whether a thermos is needed.
If two people answer the messages, the same seat can end up promised to two guests. A cancellation sent by message is easy to miss, and the seat stays empty all evening. Thermoses are counted from memory, so more or fewer get brewed than were ordered.
With the app, guests book and cancel seats on their own, and the owners only have to meet people at the door.
02 / How booking works
An example: a guest books two seats for Thursday, adds a thermos to one of them and gets a ticket with a booking code.
02 / How booking works01 / 04
The app opens right inside Telegram with no sign-up: Telegram already knows who is booking. The programme shows the film, the date, a start time worked out from when it gets dark and the number of free seats. Nobody has to ask or answer whether seats are left.
Khersonskaya 14 · the roof
1987 · West Germany · Wim Wenders · 128 min
The angels in this film sit on rooftops and listen to what people below are thinking. We open every season with it, out of professional courtesy.
20 seats left
2006 · Russia · Oksana Bychkova · 84 min
A film about losing a phone in this city and finding a person instead. The courtyard below looks much as it does on screen.
the whole roof is free
03 / What the business gets
The number of free seats is on the site and in the app, and the way up to the roof is on the ticket. The owners don’t have to answer “any seats on Friday?” or “how do I find you?”
The database won’t accept a second booking for a taken seat, even if two people tap “Take” at the same moment. Nobody has to sort out at the door whose seat it is.
A booking can be cancelled with a button on the ticket until the screening starts. The seats go back on sale with no help from the owners, and another guest can take them.
A thermos is chosen seat by seat and saved with the booking. The evening’s thermos count is kept in the database, and the ticket tells the guest their thermos will be waiting at the door.
Films on the roof start when the sun is 12° below the horizon: before that, black on the wall looks navy blue. That moment shifts every evening, so every screening’s start time is calculated in advance for the whole season from the sun’s position over the roof. The owners don’t have to work it out week by week.
The app opens right inside Telegram, which already knows who is booking, so there’s no sign-up. Booking one seat takes three taps: the screening, the seat and the “Take · 900 ₽” button.
04 / Design
The app is always dark, even with Telegram’s light theme: guests open it on a dark roof, and a bright screen would distract their neighbours from the film.
The website is laid out like a printed programme: screenings with the number of free seats, the roof plan and the prices. The site takes the free-seat count from the same database as the app, so it’s the same in both places. Guests decide on the site whether to go, and the booking button opens the app in Telegram.
05 / Reliability
If two people pick the same seat at the same moment, it goes to whoever booked first, and the other is told it’s already taken.
The rule is written into the database itself: it won’t accept a second booking for the same seat and screening, even if the Telegram Mini App gets something wrong. Only cancelling the first booking frees the seat.
The database takes all the seats of one booking at once: if even one is already taken, none go through. Otherwise a group of three would get two seats and still have to message the owners about where to put the third.
The guest is told the seat has just been taken: it lights up on the plan and drops out of the selection, the other picked seats stay, and another one can be chosen straight away. If the guest taps twice, or a bad connection sends the request again, no second booking appears, so the owners never have to remove extra ones.
A group gets all the seats it picked or none of them, so it never has to be seated by hand.
06 / Scope
07 / Honestly
DARK is a showcase project: the cinema is invented to show booking at work.
The address, prices and film programme are placeholders.
There is no online payment: a showcase project has no legal entity or payment provider, so people pay on the roof. Booking needs no prepayment, and a guest who neither comes nor cancels leaves the seat empty and unpaid.
There is no admin panel for the owners: the guest list and the evening’s thermos count exist only in the database, so there’s nothing to check the code a guest gives at the door against. A developer sets up screenings, takes seats off sale and changes prices.
The bot sends no booking confirmation or screening reminder: the ticket lives only in the app. It writes to guests only when the owner postpones a screening for rain with a command in the chat with the bot.
Screenings are set up for August and September only, when the nights are already dark and the roof isn’t cold yet. The rest of the year the programme is empty and there’s nothing to book.
This kind of booking suits any venue that sells seats for a particular evening: film screenings, concerts, talks, dinners. We’ll build booking without messages and the guarantee that no seat is sold twice the same way as here, and put the evening’s guest list in an admin panel or in Telegram. The first conversation is free: we’ll go through how you take bookings now and tell you what you actually need.