Кейс · 2026

Кинотеатр на крыше, который принимает брони без администратора

ДАРК — кинотеатр на крыше, 24 места. Мы сделали приложение, которое открывается прямо в Telegram (Telegram Mini App), сайт и бота, чтобы зрители бронировали без переписки: сами выбирают ночь и места, решают, к каким местам нужен термос с горячим напитком, получают билет с кодом брони, а если планы изменились, отменяют бронь. Кинотеатр вымышленный, а продукт настоящий и работает.

Клиент
ДАРК, кинотеатр на крыше
Формат
Telegram Mini App, сайт, бот
Языки
Русский, английский
Статус
Витринный проект: кинотеатр вымышленный, продукт работает
ДАРК

Что получает кинотеатр

Владельцам не нужно отвечать на вопросы о свободных местах, записывать брони в блокнот и по переписке считать, сколько термосов с горячим напитком готовить к сеансу.

0
сообщений владельцам, чтобы забронировать места
1
бронь на компанию до шести человек: термос добавляют только к тем местам, где он нужен
0
мест, проданных дважды: вторую бронь на занятое место база данных не примет

сайт и приложение показывают одно и то же число свободных мест: оно берётся из одной базы

01 / Задача

Брони в личных сообщениях отнимают время и путают места

На маленькой площадке брони обычно принимают в личных сообщениях: зритель пишет, кто-то из владельцев смотрит в блокнот и отвечает. На каждую бронь уходит несколько сообщений: какая ночь, сколько мест, где сесть, нужен ли термос.

Если на сообщения отвечают двое, одно и то же место могут пообещать двум зрителям. Отмену, присланную в сообщении, легко пропустить, и место пустует весь вечер. Термосы считают по памяти и заваривают то больше, то меньше, чем заказали.

С приложением зритель сам бронирует и отменяет места, а владельцам остаётся встретить людей у двери.

02 / Как проходит бронь

Зритель сам проходит путь от афиши до билета

Пример: зритель бронирует на четверг два места, к одному из них берёт термос и получает билет с кодом брони.

02 / Как проходит бронь01 / 04

Зритель видит на афише, сколько мест свободно на каждый сеанс

Приложение открывается прямо в Telegram, регистрации нет: Telegram уже знает, кто бронирует. На афише фильм, дата, время начала, рассчитанное по тому, когда стемнеет, и число свободных мест. Спрашивать и отвечать, остались ли места, никому не нужно.

Афиша

Херсонская, 14 · крыша

сезон идёт
22:10чт, 27 августа

Небо над Берлином

1987 · ФРГ · Вим Вендерс · 128 мин

Ангелы в этом фильме сидят на крышах и слушают, о чём думают люди внизу. Мы открываем им каждый сезон — из вежливости к коллегам.

свободно 20 мест

22:10пт, 28 августа

Питер FM

2006 · Россия · Оксана Бычкова · 84 мин

Кино про то, как в этом городе теряют телефон и находят человека. Двор внизу выглядит примерно так же, как в кадре.

свободна вся крыша

03 / Что это даёт

Что кинотеатр перестаёт делать руками

Зритель бронирует, не написав владельцам ни одного сообщения

Сколько мест свободно, видно на сайте и в приложении, а как пройти на крышу, написано в билете. Отвечать на вопросы «есть места на пятницу?» и «как вас найти?» владельцам не приходится.

Одно место не достанется двум зрителям

База данных не примет вторую бронь на занятое место, даже если двое нажали «Занять» одновременно. Выяснять у двери, чьё это место, не придётся.

Зритель отменяет бронь сам, и места сразу снова в продаже

Отменить бронь можно до начала сеанса кнопкой в билете. Места возвращаются в продажу без участия владельцев, и их может занять другой зритель.

Заказанные термосы записаны в бронях, считать их по переписке не нужно

Термос выбирают к каждому месту отдельно, и заказ сохраняется вместе с бронью. Число заказанных на вечер термосов хранится в базе данных, а зритель видит в билете, что его термос будет ждать у двери.

Время начала каждого сеанса рассчитано по тому, когда стемнеет

Кино на крыше начинают, когда солнце уходит на 12° под горизонт: раньше чёрное на стене выглядит тёмно-синим. Этот момент каждый вечер разный, поэтому начало каждого показа рассчитано заранее на весь сезон по положению солнца над крышей. Прикидывать его каждую неделю владельцам не нужно.

Зритель бронирует за минуту

Приложение открывается прямо в Telegram, а Telegram уже знает, кто бронирует, поэтому регистрироваться не нужно. Бронь одного места — три нажатия: сеанс, место и кнопка «Занять · 900 ₽».

04 / Дизайн

Приложение всегда тёмное, чтобы не слепить соседей по крыше

Приложение всегда тёмное, даже при светлой теме Telegram: зритель открывает его на крыше в темноте, и яркий экран мешал бы соседям смотреть кино.

Сайт оформлен как бумажная программка: афиша с числом свободных мест, план крыши и цены. Число свободных мест сайт берёт из той же базы, что и приложение, поэтому оно везде одинаковое. Зритель решает на сайте, идти ли, а кнопка брони открывает приложение в Telegram.

  • На сайте до брони есть ответы на обычные вопросы: что входит в место, сколько стоит термос, что будет при дожде и как платить. Спрашивать об этом владельцев незачем.
  • На билете рядом с номером места написано, где оно: «у парапета», «у трубы». Зритель находит своё место в темноте сам, и провожать его никому не приходится.
Любое место можно снять с продажи на все сеансы: на плане в приложении и на сайте оно остаётся, но забронировать его нельзя. У ДАРКа так закрыто место Т1 у трубы: там сидит кот.

05 / Надёжность

Одно место нельзя продать дважды

Если двое одновременно выбрали одно место, его получит тот, чья бронь пришла первой, а второй увидит, что место уже занято.

Запрет записан в самой базе данных: вторую бронь на то же место и сеанс она не примет, даже если в Telegram Mini App случится ошибка. Освободить место может только отмена первой брони.

Все места одной брони база принимает разом: если хотя бы одно уже занято, не пройдёт ни одно. Иначе компания из трёх получила бы два места и всё равно написала бы владельцам, куда посадить третьего.

Зритель видит сообщение, что место успели занять: оно подсвечивается на плане и пропадает из выбора, остальные выбранные места остаются, и можно сразу взять другое. Если зритель нажал кнопку дважды или при плохой связи запрос ушёл повторно, второй брони не появится, и снимать лишние брони владельцам не придётся.

Компания получает либо все выбранные места, либо ни одного, и рассаживать её вручную не нужно.

06 / Объём

Что входит в проект

Telegram Mini App

  • Афиша с числом свободных мест
  • План крыши и выбор до шести мест
  • Термос можно добавить к любому месту брони
  • Билет с кодом брони, местами, адресом и дорогой на крышу
  • Отмена брони самим зрителем, места сразу снова в продаже
  • Вкладка «Билеты»: все брони зрителя, ближайшие, прошедшие и отменённые
  • Вкладка «Как добраться»: где вход, что взять с собой, что будет при дожде
  • Русский и английский: язык берётся из настроек Telegram, его можно переключить
  • Перенос из-за дождя: владелец отправляет боту команду, сеанс переезжает на ближайшую свободную ночь с теми же местами и кодами, бот пишет об этом каждому, у кого бронь

Сайт и бот

  • Афиша с числом свободных мест из той же базы, что у приложения
  • План крыши и цены: место и место с термосом
  • Ответы на вопросы до брони: что при дожде, как одеться, почему звук в наушниках, как платить
  • Кнопки брони, открывающие приложение в Telegram
  • Русская и английская версии
  • Бот: приветствие, ответ на /help о том, как найти вход и что взять, и кнопка, открывающая приложение

Основа

  • Next.js на Cloudflare Workers: сайт, приложение и бот работают в одном сервисе
  • Neon Postgres: база данных сама не даёт продать место дважды
  • Время начала каждого сеанса рассчитано по положению солнца над крышей
  • Бронь привязана к аккаунту Telegram, поэтому без регистрации и паролей

07 / Честно

Что здесь условно и чего в продукте пока нет

ДАРК — витринный проект: кинотеатр придуман, чтобы показать бронь в работе.

Адрес, цены и программа фильмов условные.

Онлайн-оплаты нет: у витринного проекта нет юрлица и платёжного провайдера, поэтому платят на крыше. Бронь без предоплаты, и зритель, который не пришёл и не отменил, оставляет место пустым и неоплаченным.

Панели управления для владельцев нет: список зрителей и число термосов на вечер есть только в базе данных, поэтому код, который зритель называет у двери, сверить не с чем. Сеансы заводит, места с продажи снимает и цены меняет разработчик.

Бот не присылает подтверждение брони и не напоминает о сеансе: билет есть только в приложении. Зрителям бот пишет, только когда владелец переносит сеанс из-за дождя командой в чате с ботом.

Сеансы заведены только на август и сентябрь, когда ночи уже тёмные, а на крыше ещё не холодно. В остальные месяцы афиша пуста, и забронировать место нельзя.

Нужна такая же бронь мест?

Такая бронь подходит любой площадке, которая продаёт места на конкретный вечер: кино, концерты, лекции, ужины. Бронь без переписки и защиту от двойной продажи мы сделаем так же, как здесь, а список зрителей на вечер выведем в панель управления или в Telegram. Первый разговор бесплатный: разберём, как вы сейчас принимаете брони, и скажем, что вам действительно нужно.