Что мы делаем
Что уже работает, что в работе, что в плане и что пока только обсуждается.
Ничего из этого не написано потому, что красиво звучит. «Готово» — значит работает в продукте сегодня; «обсуждается» — не обещание.
Войдите в редактор и нажмите «Предложить идею» — читаем каждое.
В работе
делается прямо сейчасРоли и права внутри приложения
В работеВладелец приложения правит его данные всегда; приглашённые им редакторы — тоже; остальные только читают. Право проверяет сервер, поэтому спрятанная условием кнопка — удобство, а не защита. Роль доступна подстановкой {{role}}. Осталось: экран приглашения в редакторе — сейчас список редакторов правится только через API.
В плане
взяли на себя обязательствоРассылки посетителям приложения
В планеРазовое подтверждение заявки клиент уже получает — это сделано. Здесь про другое: написать всем, кто пользовался приложением, — «завтра не работаем», «новая коллекция». Нужен список тех, кто открывал приложение, экран рассылки и ограничения: бот, разославший рекламу всем подряд, блокируется Telegram, и вместе с ним перестаёт открываться приложение. Поэтому не «кнопка отправить всем», а список, согласие и лимиты.
Оплата внутри приложения: Telegram Stars
В планеКнопка «Оплатить» сейчас открывает ссылку, которую владелец создал сам. Stars — первый способ, где счёт выставляется из приложения, а статус заказа возвращается в него же.
Экспорт и импорт проекта
В планеВыгрузка project.json уже есть; нужен обратный ход и перенос проекта между аккаунтами — чтобы работа не была заперта внутри одного логина.
Совместная работа над проектом
В планеВторой человек в проекте: доступ, роли и понимание, кто что менял. Сейчас проект принадлежит одному аккаунту целиком.
История версий и откат
В планеОтмена действий работает внутри сессии. Нужна история опубликованных версий и возврат к предыдущей — на случай, когда «сломалось после вчерашней правки».
Напоминания от вашего бота
В планеНапомнить о записи накануне, о брошенной корзине, о том, что абонемент кончается. Технически это тот же ваш бот, который уже подключается и уже пишет подтверждения; не хватает расписания и списка тех, кому можно писать. Счёт выставлять уже можно — см. оплату картами.
Обсуждается
без обязательств и без сроковПостинг в привязанные каналы и чаты
ОбсуждаетсяПросили в обратной связи: публиковать записи из приложения в канал или чат. Ближе всего к этому — хранение токена вашего бота: без него постить не от кого. Сроков пока не называем.
Формы: ответы на почту
ОбсуждаетсяЗаявка приходит в Telegram, лежит в редакторе и может писать строку в таблицу приложения или в подключённую Google Таблицу. Письма на почту пока нет — это единственное, чего здесь не хватает.
Один человек — один профиль в Telegram и MAX
ОбсуждаетсяСпрошено в обратной связи. Идентификаторы у площадок разные и общего между ними нет, поэтому сам по себе один и тот же человек, зашедший из MAX и из Telegram, будет для приложения двумя разными. Связать их можно тем, что человек назвал сам, — номером телефона; ничего другого, что совпало бы у двух площадок и при этом принадлежало бы человеку, а не мессенджеру, попросту нет. Отсюда порядок: сперва спросить телефон, потом сводить профили. Пока номер не дали, два профиля остаются разными — угадывать, что это один человек, мы не станем.
Таблица данных как в NocoDB
ОбсуждаетсяКолонки тянутся, первая колонка и действия не уезжают, ячейка раскрывается на месте, есть поиск по всем столбцам сразу и упорядочивание по столбцу с возвратом прежнего порядка. Дальше — фильтры и группировка прямо в таблице. Читать чужую базу при этом уже можно: NocoDB, Teable, Baserow и Airtable подключаются как внешний источник.
Готовые блоки под задачу
ОбсуждаетсяШаблоны собирают приложение целиком. Между шаблоном и голым холстом не хватает среднего — готового блока «корзина», «запись на время», «отзывы», который кладётся в свой экран.
Готово
работает в продукте сегодняБаза знаний в редакторе
ГотовоСделано частично, и вот честная граница. Справочник живёт в самом редакторе: 61 статья десятью разделами — данные и подстановки, действия, условия показа, экраны и оболочка, оформление, публикация, свой домен, платежи, тарифы, разборы готовых случаев. Открывается из меню «Ещё», по клавише F1, из палитры команд и кнопками «?» рядом с тем, что объясняет; русский и английский. Чего пока нет: видеоуроков, картинок в статьях и раздела справки на самом сайте — то есть до регистрации прочитать его негде.
Адрес и маршрут в приложении
ГотовоБлок «Адрес»: название места, адрес, часы работы, строчка «как найти» и ваше фото — вход, витрина, схема двора. Кнопка внизу открывает карту на телефоне посетителя с маршрутом от того места, где он стоит: Яндекс Карты, Google Maps или 2ГИС на выбор. Адрес можно взять из таблицы подстановкой, тогда у каждого филиала или объекта свой маршрут. Карты с картинкой местности внутри приложения нет и не будет: чужая карта внутри — это чужой код рядом с вашими посетителями, а маршрут всё равно прокладывает навигация на телефоне, и прокладывает лучше.
Выбор нажатием — и он доходит до вас
ГотовоКнопки и карточки умеют подсвечивать выбранное: пара свойств «Подсвечивать, когда» и «равно значению» рядом с действием «Задать значение» — так собираются выбор мастера, дня, времени, категории места, размера. Выбранное можно дописать к заявке: у действия «Отправить форму» появилось поле «Добавить к заявке», где слева подпись для письма, а справа подстановка. До этого в заявку попадало только набранное руками, и салон получал «Стрижка, 1500 ₽» без дня и часа — приходилось звонить и переспрашивать.
Посетитель прикладывает файл
ГотовоРезюме к отклику, снимок анализа, фото повреждений: посетитель прикладывает файл прямо в форме, и он приходит владельцу ссылкой. Картинки, PDF, документы Word и Excel, RTF, простой текст, CSV и ZIP до 10 МБ. Место считается в тарифе владельца, а файл, на который перестало ссылаться хоть что-нибудь, удаляется примерно через месяц.
Звёзды, обратный отсчёт и «в календарь»
ГотовоСделано, все три. **Звёзды** — один блок и на показ, и на ввод: без имени поля это оценка из данных, с именем — поле формы отзыва. Половинки рисуются, потому что 4,5 — это среднее по отзывам, а округление до пяти читается как «все довольны». **Обратный отсчёт** до даты из таблицы: у каждой карточки афиши свой. **«В календарь»** — своим файлом события, который телефон кладёт в календарь; раньше кнопка открывала Google Календарь без времени, потому что календарю нужна машинная дата, а в шаблоне лежала человеческая строка. Отсюда одно требование к таблице: дату для счётчика и для календаря храните машинной — `2026-08-12T19:00`; читаемую «12 августа» держите соседним столбцом, её показывают людям.
Редактор скажет, что кнопка ничего не делает
ГотовоСделано. Полоса экранов помечает значком «Кнопка без действия» экран, на котором есть управление, обещающее нажатие и ничего не делающее, и в подсказке называет их поимённо: «Оформить заказ», «Записаться». Обещанием считается кнопка любого рода и строка списка со стрелкой; строка без стрелки — витрина, она ничего не обещает и в счёт не идёт. Нажимающийся родитель засчитывается: кнопка «Купить» внутри карточки, которая сама открывает товар, ведёт себя так, как ждёт палец. Отдельные экраны из галереи по-прежнему приходят без переходов между вашими экранами — связать их за вас мы не можем, — но теперь вы увидите это сразу, а не от посетителя.
Варианты столбца: порядок, цвет, пилюли
ГотовоСделано. Варианты столбцов «одно из списка» и «несколько из списка» переставляются перетаскиванием, а цвет пилюли выбирается нажатием на неё — восемь цветов и «по названию», когда подбирать не хочется. Цвет по названию остался тем, что видно без всякой настройки: одно и то же слово окрашено одинаково во всех таблицах. Оба типа столбца теперь рисуются пилюлями и в ячейке, и в выпадающем списке — раньше соседние столбцы одного рода выглядели разнотипно. Цвет, выбранный руками, живёт в редакторе данных: в самом приложении полоса фильтра и карточки берут оформление из своих свойств.
Видео с VK Видео, Rutube, Дзена и YouTube
ГотовоБлок «Видео» понимает адрес страницы, скопированный из адресной строки, и открывает ролик плеером самого хостинга: VK Видео, Rutube, Дзен, YouTube. Прямая ссылка на файл mp4 работает как работала — у неё остаются свои настройки, «Повторять» и «Без звука». У чужого плеера их нет и быть не может: командовать им мы не умеем, и рисовать эти переключатели значило бы обещать то, чего никто не выполнит.
Дата и время: формат задаётся там, где выводится
ГотовоРаньше формат был свойством столбца — один на все места сразу, и под афишу «7 августа», «19:00» и «7 августа, 19:00» приходилось заводить три столбца. Теперь выбор данных, наткнувшись на столбец с датой, спрашивает «Что показывать» (дату, время или и то и другое) и «Как показывать» — списком образцов. Сортировка, фильтры и условия показа при этом продолжают сравнивать машинное значение, а не то, что видно на экране.
Фильтр по дням и по времени сеансов
ГотовоПолоса «Фильтр — чипы» по столбцу с датой раскладывается днями, а теперь ещё и часами: по пилюле на сеанс. Отдельный столбец под это заводить не нужно — это тот же столбец, спрошенный о другом. У полосы есть свойство «Прошедшие дни»: оставлять или убирать, причём сегодняшний остаётся всегда — афиша на сегодня то, за чем и заходят.
Поиск и сортировка в таблице
ГотовоВ окне таблицы есть поиск по всем столбцам сразу (появляется от восьми записей) и упорядочивание по столбцу. Даты сравниваются как моменты, числа как числа, «Зал 10» встаёт после «Зала 2», пустое уходит вниз в обе стороны. Сортировка правит документ, а не только вид — порядок строк видит посетитель, — поэтому прежний порядок кладётся в кнопку «Вернуть».
Правка записей прямо в приложении
ГотовоДействия «Изменить запись», «Убрать запись» и «Заполнить форму записью» правят любую запись, включая набранные в редакторе. Кто может — решает сервер: владелец приложения и приглашённые им редакторы данных, остальные только смотрят. Правка записи документа видна в панели данных пометкой «Изменено» с возвратом прежнего варианта: документ переписывается целиком при каждой публикации, и правка живёт наложением поверх строки.
Вкладки на одном экране
ГотовоБлок «Вкладки на экране»: нажатие пишет выбор в переменную, а каждая вкладка — обычный контейнер с условием показа. Это не то же самое, что «Панель вкладок» внизу приложения — та ведёт на другие экраны. Открытая первой подставляется сама, иначе экран открывался бы пустым: ни одно условие не совпало бы.
Тёмная тема и переключатель для посетителя
ГотовоПриложение следует теме мессенджера, а посетитель может решить иначе: действие «Переключить тему приложения» на любой кнопке и готовый блок «Переключатель темы». Выбор главнее мессенджера и переживает перезагрузку. Цвета в оформлении задаются парой — светлый и тёмный, — поэтому чипы, плееры и значки меняются вместе с темой, а не остаются от светлой.
Хранение токена вашего бота
ГотовоСделано. Токен вводится один раз в диалоге публикации, хранится у нас зашифрованным (AES-256) и в браузер не возвращается — показать его нельзя, можно заменить или отключить. Публикация после этого сама ставит кнопку «Открыть» в вашем боте на новый адрес. Этим же токеном сервер проверяет подпись данных запуска Telegram и отправляет подтверждение вашему клиенту.
Оплата картами в вашем приложении
ГотовоПодключите свою кассу — ЮKassa или Т-Банк — в диалоге «Опубликовать»: нужны ключи из личного кабинета провайдера, они проверяются сразу и хранятся у нас зашифрованными. Дальше на любой кнопке выбирается действие «Принять оплату», сумму можно взять из таблицы подстановкой («{{item.price}}»). Покупатель платит на странице банка и возвращается в приложение; оплата подтверждается ответом провайдера, а не самим возвратом — если человек не вернулся, платёж всё равно досмотрит сверка. Об оплате узнают оба: вы — в Telegram и на экране «Платежи», покупатель — сообщением от вашего бота. Деньги идут напрямую в вашу кассу: продавец — вы, чек выставляет ваша касса по её настройкам, возврат делаете вы в своём кабинете. Мы не держим ваших денег и потому не можем их вернуть.
Свой домен для приложения
ГотовоСделано. Впишите домен в окне публикации — сервис покажет, что добавить в DNS: для поддомена вроде app.example.com это одна запись CNAME, для адреса без поддомена (example.com) — две. Дальше без вас: мы проверяем записи у серверов вашего регистратора напрямую, минуя кэши, выпускаем сертификат, продлеваем его сами и переставляем кнопку «Открыть» в вашем боте на новый адрес. Когда всё готово, бот вам об этом напишет. Прежний адрес продолжает работать: розданные ссылки и напечатанные QR-коды ничего не теряют. Записи у регистраторов расходятся не мгновенно — обычно 15–30 минут, иногда несколько часов; страницу можно закрыть. В MAX адрес нужно поменять вручную в кабинете партнёра — своего метода у MAX нет. Доступно на тарифах «Про» и «Студия». Владелец открывает своё приложение на своём домене собой, а не посетителем: кнопка «Открыть на своём домене» рядом с подключённым доменом выдаёт разовую ссылку, и кнопки правки записей на месте. Вход на чужом домене отдельный от нашего — браузер не переносит его между адресами, — поэтому ссылка одноразовая и живёт две минуты.
Публикация в MAX
ГотовоСделано. Опубликованное приложение открывается и в MAX, и в Telegram — сборка одна, адрес один. Регистрация и вход через MAX работают наравне с телеграмными, а подпись запуска проверяется токеном вашего MAX-бота, то есть имя посетителя в заявке — настоящее, а не то, что он написал про себя сам. Чего мы не можем: вставить адрес приложения в бота за вас. У MAX нет для этого метода в API — проверено по всей поверхности, — поэтому адрес вставляется руками один раз в кабинете партнёра. Бот MAX проходит модерацию площадки, до 48 часов по рабочим дням.
Внешние источники данных
ГотовоТаблица приложения наполняется вашей: файлом Excel или CSV, Google Таблицей (по ссылке или через служебный аккаунт, если таблица приватная), книгой на Яндекс.Диске, любым адресом, отвечающим JSON, — NocoDB, Teable, Baserow, Airtable и своим API. Строки обновляются сами, по расписанию и при публикации, а не копируются один раз. Правки из приложения можно писать обратно в Google Таблицу.
Связка с n8n, Make и своим сервером
ГотовоОтдельный коннектор не нужен: события приложения уезжают вебхуком на ваш адрес, а по встречному адресу ваш сценарий кладёт строку прямо в таблицу приложения. Наружу уходят отправленная форма, добавленная и изменённая строка и прошедшая оплата — POST с JSON и подписью, с повторами, если ваш сервер не ответил. Настраивается в меню «Ещё» → «Автоматизация и вебхуки».
Связь между таблицами
ГотовоПредложено в обратной связи. Поле типа «Связь» хранит ссылку на строку другой таблицы: мероприятие указывает на площадку, а не повторяет её название текстом. Разница видна не в день заполнения, а в день, когда площадка переехала: адрес правится один раз, а не в двадцати строках. Поля связанной таблицы можно подставлять — «Площадка → Адрес» — и они предлагаются в выборе данных наравне со своими. Связь разворачивается на один уровень: этого хватает на вопросы, которые задают, и на этом не зацикливается кольцо ссылок.
Вывод QR-кодом и поле «случайный код»
ГотовоПредложено в обратной связи. QR оказался не типом поля, а способом вывода: в таблице лежит обычная строка — её видно и можно сверить глазами, — а компонент рисует из неё код. Значение принимает подстановку, поэтому внутри повторителя каждая строка получает свой QR. Код собирается в самом приложении, без обращения к стороннему сервису. Рядом — тип поля «случайный код»: новая запись сразу получает номер, без нуля и «O», единицы, «I» и «L», потому что его диктуют голосом на входе.
Номер телефона посетителя
ГотовоСпрошено в обратной связи. Приложение умеет спросить номер: окно согласия показывает сам Telegram, номер попадает в подстановку {{user.phone}} и приходит владельцу обычной заявкой. Отсюда же защита содержимого — условие «показывать, если телефон заполнен» закрывает покупку билета или отзыв, пока номером не поделились, а обратное условие прячет приглашение, как только им воспользовались. Отказ — рабочий исход: {{user.phone}} остаётся пустым, и экран обязан работать и для отказавшихся.
Визуальный редактор
Готово48 типов компонентов, слои с перетаскиванием и сменой родителя, отмена и повтор, палитра команд, стили проекта и шрифты.
Редактор на телефоне
ГотовоПолноценная работа с телефона: холст во всю ширину, свойства и слои листом поверх, добавление компонентов в зоне большого пальца. С телефона теперь доступны и данные: таблицы, переменные и источники открываются листом «Данные», а окно таблицы показывает запись карточкой — полями сверху вниз, а не сеткой в семнадцать столбцов, в которую на экране телефона видно полтора значения.
16 готовых шаблонов
ГотовоМагазин, доставка еды, кофейня с самовывозом, запись в студию, медцентр, автосервис, афиша и билеты, фитнес, курсы, недвижимость, туры, вакансии, музыка, сборы, лояльность, портфолио — каждый со своими данными и экранами. Плюс 32 отдельных экрана, которые добавляются к уже собранному проекту. В шаблоне работает всё, что выглядит работающим: на каждый экран есть чем прийти, у каждой кнопки есть действие, а выбор — мастера, дня, времени, категории места — настоящий и уезжает вместе с заявкой. Это проверяется тестом при сборке, а не глазами.
Приложение пишет в свои данные
ГотовоФорма добавляет строку в таблицу, а не только присылает заявку: действие «Добавить запись в таблицу» превращает приложение в админку собственных данных — афишу можно пополнять с телефона. Записи хранятся отдельно от опубликованного документа, поэтому следующая публикация из редактора их не стирает.
Свои данные и подстановки
ГотовоКоллекции с полями, переменные, повторитель с фильтрами и сортировкой. Данные подставляются в любое поле кнопкой со списком, и рядом видно, во что подстановка разворачивается сейчас.
Условия и фильтры по времени
ГотовоУсловия показа и фильтры списков умеют «раньше чем» и «позже чем», а подстановка {{now}} даёт текущий момент — со сдвигом: {{now+2h}}, {{now-30m}}, {{today}}. Так собирается «показывать только предстоящее» и «убрать из списка то, до чего меньше двух часов». Даты, набранные словами, сравнению не подлежат: угадав неверно, приложение молча спрятало бы чужое мероприятие.
Логика без кода
Готово16 действий — переход, запись в переменную, всплывающие окна, буфер обмена, поделиться, сканер QR, вибрация — и условия показа для любого блока.
Публичный план и предложения
ГотовоЭта страница и форма «Предложить идею» в редакторе. Всё, что предлагают, читается; принятое становится строкой здесь.
Формы и заявки
ГотовоФорма собирает ответы, проверяет их и отправляет владельцу в Telegram; заявки видны в редакторе. В превью видно состав заявки — до всякой публикации.
Публикация одной кнопкой
ГотовоПриложение получает адрес и открывается в Telegram. Черновики хранятся на сервере, поэтому работа не заперта в одном браузере.
Загрузка картинок
ГотовоСвои изображения на нашем хранилище, включая HEIC с айфона: ссылка на чужой сайт перестаёт работать через полгода, а это — нет.
Статистика приложения
ГотовоСколько человек открыли приложение, какие экраны смотрели и какие события сработали.
Переписка с поддержкой
ГотовоКнопка «Написать нам» — это переписка, а не письмо в ящик: ответ приходит в Telegram и виден в редакторе.
Два языка интерфейса
ГотовоРедактор целиком на русском и английском.
Работа с холстом как в больших конструкторах
ГотовоУ выделенного компонента появилась полоска с именем и действиями: подняться к родителю, добавить внутрь, продублировать, удалить. Контейнер это ровно та область, которую закрывают его дети, поэтому кликом его было не поймать — теперь есть и стрелка, и ⌘⇧+стрелки для прохода по дереву. Компонент можно обернуть в контейнер и развернуть обратно. Текст правится прямо на холсте двойным кликом. Линия при перетаскивании показывает то место, куда компонент действительно встанет, а не соседнее. Замок и глаз в дереве слоёв наконец работают: заблокированный компонент не двигается и не удаляется, скрытый виден в редакторе бледным, а в опубликованном приложении его нет.
Свои блоки и общие стили
ГотовоСобранный кусок экрана — карточку, шапку, блок с кнопкой — можно сохранить как свой блок и ставить снова из панели компонентов. Оформление сохраняется как именованный стиль: поставили его нескольким компонентам, поправили один раз — изменились все. Стиль у компонента один, без наслоения классов друг на друга: списки классов с порядком применения — это профессия, а не конструктор. Блоки и стили лежат в проекте, поэтому уезжают вместе с публикацией и с выгрузкой.
Поиск по настройкам, поиск по экрану, история
ГотовоВ панели свойств появился поиск: набрали «скругление» — остались поля про скругление. Работает и на телефоне, в том же листе. Палитра ⌘K теперь ищет не только команды и компоненты, которые можно добавить, но и то, что уже стоит на экране, — набрали имя и перешли к компоненту, даже если он скрыт или заблокирован. История изменений (⌘⇧H) показывает список шагов и возвращает к любому: до этого «отменить» работало вслепую. ⌘S записывает сразу, не дожидаясь автосохранения.
Свой компонент: поправил один раз — изменилось везде
ГотовоШапка, карточка, блок с кнопкой, которые стоят на пяти экранах, теперь можно сохранить как компонент. Дальше он ставится сколько угодно раз, а правится в одном месте: открыли «Редактировать компонент», поменяли — изменилось везде, где он стоит. Перед правкой прямо на экране написано, скольких копий это коснётся, — чтобы это не выяснялось после. Копии по-прежнему доступны: «Сохранить как блок» кладёт кусок экрана в панель и вставляет его обычной копией, живущей своей жизнью. Разница между этими двумя вещами — единственное, что здесь надо понять, поэтому и списка два, и названы они по-разному. Любой экземпляр можно отвязать, и он станет обычной копией.
Свой бот подключается один раз
ГотовоРаньше токен бота вводили заново при каждой публикации, и нигде не хранили: документ приложения скачивает каждый посетитель, и токен в нём стал бы общим. Теперь токен уходит на сервер, лежит там зашифрованным (AES-256) и привязан к вашему аккаунту, а в браузер больше не возвращается — показать его нельзя, можно заменить или отключить. Публикация после этого сама ставит кнопку «Открыть» в вашем боте на новый адрес: раньше это делалось из браузера вашим же токеном, и одной опечатки хватало, чтобы приложение опубликовалось, но из бота не открывалось.
Приложение отвечает клиенту в Telegram
ГотовоЧеловек оставил заявку — и сразу получает подтверждение в свой чат с вашим ботом: «Запись принята. Барбершоп свяжется с вами». Пишет ваш бот, а не наш: наш этому человеку не писал и права на это не имеет. Заодно сервер теперь проверяет подпись данных запуска Telegram — до этого имя посетителя приходило из браузера, где оно подделывается открытой консолью, а значит имя в заявке было тем, что посетитель написал про себя сам. Теперь в заявке стоит проверенное имя. Если человек открыл приложение по ссылке, не нажав в боте «Старт», подтверждения не будет — Telegram запрещает боту писать первым, — но заявка всё равно принята и владельцу ушла.