Проекты04 / 05

Часы одного стилиста превратились в продукт: платная воронка в Telegram, которая принимает деньги и фотографии, бренд-сайт, на котором останавливается скролл, и клуб по подписке.

la-abramova.com

Первый экран главной страницы LA Abramova
Первый экран: голос стилиста и один маршрут в Telegram.
Клиент
LA Abramova, персональный стилист в Риге
Объём
Telegram-бот, админ-панель, сайт, страницы клуба
Период
Май 2024 – октябрь 2026
Стек
PHP, Symfony, PostgreSQL, Stripe, S3, Telegram Bot API, Next.js, Tailwind
Онлайн
la-abramova.com

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

Это заняло два с половиной года и три продукта, а самое важное изменение не было техническим. Первая версия доверяла выбор цветотипа клиента модели. Выпущенный продукт вернул решение эксперту.

  1. 01

    Платная воронка внутри Telegram

    @FauvismBot ведёт клиента от «как вас зовут» через тур по сезонам к догадке о собственном цветотипе, а затем к Stripe Checkout. Сначала деньги: обработчик фото не запустится без завершённого платежа. Потом 15–20 фотографий, которые хранятся отдельно по каждому клиенту.

  2. 02

    Стол стилиста

    Админ-панель для одного человека: открыть заказ, посмотреть фото прямо в нём, выбрать один из 24 цветотипов, при необходимости добавить комментарий, нажать Fulfill. Результат доставляет бот. Платежи доступны только для чтения, заказы удалить нельзя.

  3. 03

    Сайт со своим голосом

    Четыре услуги с ценами, лукбук и один маршрут в Telegram. Ключевое слово первого экрана само пишется помадой через SVG-фильтр турбулентности; пятно света за мышью подсвечивает фото; над всем кликабельным работает курсор-губы. Статический экспорт Next.js, без сервера, без CMS.

  4. 04

    Клуб, который купили, а не написали

    Первая версия работала на готовой платформе для курсов и в Telegram-группе. Свою LMS намеренно не писали. В сентябре 2026 сайт перестроили вокруг House of Image, ежемесячного клуба с двумя ведущими, и 24 октября клуб открылся.

Как это устроено

  1. Внимание

    • Соцсети
    • Бренд-сайтодин маршрут в Telegram
  2. Воронка

    • Telegram-ботобучение, потом догадка
    • Stripe Checkoutвебхук, а не редирект
  3. Материал

    • 15–20 фотографийтолько после оплаты
    • S3по клиентам
  4. Эксперт

    • Стол стилистаодин из 24 типов
    • Результат в Telegramв течение 2 дней
Страница клуба House of Image на сайте LA Abramova
House of Image, открытый однострочным коммитом.

То, что обычно не попадает в портфолио. Всё это было на самом деле, и всё это есть в истории коммитов.

  1. Сбой 01

    AI, которому, вероятно, так и не показали фото

    Симптом
    Первый прототип работал. Отправляешь селфи, получаешь уверенный ответ: сезон, названные цветовые образцы, советы по одежде и макияжу.
    Причина
    Перечитываю этот код ради этой страницы: он загружает селфи на Imgur, а потом вставляет URL в обычный текстовый промпт. Картинки в вызове нет, а API не скачивает ссылки из текста. Значит, модель, скорее всего, вообще не видела лица и отвечала по одним словам. Заново я это не запускал; это прочтение кода.
    Решение
    Переписывание не починило вызов. Оно убрало модель из решения: 15–20 фотографий и эксперт, выбирающий из 24 типов там, где у прототипа их было четыре. Продукт стал лучше, когда в него добавили человека. Уверенный JSON-ответ не доказывает, что модель хоть на что-то посмотрела.
  2. Сбой 02

    Бот, который принимал каждое сообщение и молчал

    Симптом
    После переезда на Heroku /start, судя по всему, оставался без ответа. Восстановлено по логу коммитов: в ночь на 3 апреля 2025, файрволы в 01:44, семь строк логирования в 02:09.
    Причина
    Входящие апдейты маршрутизировались в асинхронную очередь, а деплой состоял из одного веб-процесса. Очередь никто не читал. Вебхук принимал каждый апдейт, и тот ждал вечно. Молчаливый успех — худший из возможных режимов отказа.
    Решение
    Воркер добавили в 02:18:55 и убрали через 2 минуты 7 секунд, а сообщения переехали на sync. Одно слово в конфиге. Отладочные логи удалили в 02:22.
  3. Сбой 03

    Четырнадцать нумерованных исправлений, потом одна строка

    Симптом
    Деплой одного Telegram-бота на AWS занял 17 коммитов в марте 2025: от «fix deploy github» до номера 14, Dockerfile, nginx, ECR, EC2 через SSH, RDS. Права на env-файл прошли путь 600, 644, 600, 777, 640.
    Причина
    Инфраструктура была намного тяжелее нагрузки: одно вебхук-приложение с низким трафиком. Больше половины всех коммитов бэкенда, 27 из 52, ушло на то, чтобы доставить его в продакшен.
    Решение
    Однострочный Procfile 2 апреля и через две минуты «Remove docker stuff»: 12 файлов, −511 строк. Исправлением стало удаление системы.
  4. Сбой 04

    Две цены, один продукт

    Симптом
    Май 2025, коммит с заголовком «Fix Old hardcoded priceID». Цена изменилась, а бот всё ещё списывал старую.
    Причина
    ID цены в Stripe был захардкожен в PHP, а запись о продукте редактировалась в админке. Два источника правды для одного числа.
    Решение
    ID переехал в конфигурацию. Честная часть: цена в админке по-прежнему питает только внутреннюю запись, а с карты списывается то, что говорит Stripe. Та же ловушка ждёт любую функцию «редактировать цены в админке» перед хостед-чекаутом.
  5. Сбой 05

    Запуск за строительной лентой

    Симптом
    Перестроенный сайт надо было запускать, пока клуб не готов, а его страницы не могли показывать цены и ссылки.
    Причина
    Клуб затрагивает навигацию, первый экран, тизер, целую страницу и то, можно ли поисковикам её индексировать. Пять мест, и одно легко забыть.
    Решение
    Всем этим управляет одна константа CLUB_OPEN; в закрытом состоянии — жёлтая лента и «в разработке». У неё намеренно явный тип boolean, иначе TypeScript выводит литерал и объявляет открытую ветку недостижимой. Открытие клуба через 32 дня стало однострочным коммитом.

  • коммитов за 29 месяцевтри репозитория, один автор
  • цветотипасезоны прототипа против подтипов стилиста
  • фотографий на заказсобирает бот после оплаты
  • коммита в первый день сайта15 апреля 2025, с 00:32 до 14:24
  • строк убрало исправлениеDocker и EC2 ушли, пришла одна строка Procfile
  • строка, чтобы открыть клубчерез 32 дня после запуска за лентой

Пульс проекта

Каждый коммит в репозиториях проекта на одной линии. Чем выше столбик, тем жарче было.

май 2024 г.окт. 2026 г.
  1. Прототип на GPT: 286 строк на Python
  2. Переписанная версия на Symfony доходит до Stripe
  3. Docker и EC2 убраны, один Procfile добавлен
  4. Сайт за один присест
  5. Первый клуб и его страница
  6. Перестройка: новая арт-дирекция, четыре услуги
  7. Открытие House of Image

Сервисному бизнесу не нужна сначала платформа. Ему нужен один платный путь, который работает от начала до конца, а ту часть, которую никто другой не сделает, по-прежнему делает эксперт. Всё остальное можно купить, арендовать или добавить позже. Если вы продаёте собственные часы, с этого я бы и начал.

Написать бриф

Быстро отвечаю в WhatsApp и Telegram

Или спросите о нём цифровой разум
Следующий кейсArtForte