Lovable AI: как собрать приложение и не застрять на красивом прототипе
Lovable позволяет описать веб-приложение словами, получить интерфейс, подключить данные и опубликовать результат. Первая версия действительно появляется быстро. Сложность начинается на следующем шаге: нужно превратить убедительную демонстрацию в приложение, которое хранит правильные данные, разделяет права и переживает изменения.
Разберем маршрут на примере небольшого кабинета заявок. Пользователь оставляет заявку, менеджер меняет ее статус, а владелец видит сводку. Это достаточно узкий проект, но в нем уже есть все границы реального приложения.
Начните не с экрана, а с рабочего результата
Плохое первое задание:
Сделай современную CRM с красивым дизайном.
Lovable придется самому решить, кто пользуется системой, какие данные хранятся и что означает готовность. В итоге легко получить несколько красивых страниц без рабочего процесса.
Создай веб-приложение для учета входящих заявок. Есть две роли: менеджер видит назначенные ему заявки и меняет статус, администратор видит все заявки и назначает ответственного. У заявки есть имя клиента, контакт, источник, комментарий, статус и дата создания. Сначала покажи план экранов, таблиц и правил доступа. Не подключай внешние сервисы и не публикуй приложение до моего подтверждения.
Здесь заданы сущности, роли и точка остановки. Интерфейс становится следствием процесса, а не главным результатом.
Используйте режим планирования до Agent mode
В текущем интерфейсе Lovable можно начать с Plan mode, обсудить устройство приложения и только затем перейти к реализации. На этом этапе проверьте:
· какие страницы будут созданы;
· какие таблицы и поля нужны;
· кто может читать и менять каждую запись;
· какие состояния есть у заявки;
· где нужна серверная логика;
· какие действия остаются вне первой версии.
Не просите сразу добавить аналитику, уведомления, интеграцию с почтой и импорт старой базы. Сначала один вертикальный путь: администратор создает менеджера, пользователь оставляет заявку, менеджер меняет статус, администратор видит результат.
Подключите данные до полировки дизайна
Прототип часто использует тестовые массивы в коде. Они подходят для макета, но не подтверждают, что приложение умеет сохранять данные и разделять доступ.
Lovable предлагает собственный облачный backend и интеграцию с Supabase. При любом варианте отдельно проверьте:
1. где физически хранятся записи;
2. как создаются пользователи;
3. какие правила запрещают менеджеру видеть чужие заявки;
4. где находится административный секрет;
5. как сделать резервную копию;
6. как забрать данные при переезде.
Никогда не вставляйте секретный серверный ключ в клиентский код или чат без необходимости. Просите создать переменную окружения и указывать только ее имя. После генерации проверьте файлы и сетевые запросы в браузере.
Проверьте права на реальных ролях
Надпись «Admin» в интерфейсе не является защитой. Если кнопка скрыта, пользователь все равно может попытаться отправить запрос напрямую.
Создайте два отдельных тестовых аккаунта и пройдите сценарии:
· менеджер A открывает свою заявку;
· менеджер A пытается открыть ссылку заявки менеджера B;
· обычный пользователь пытается вызвать административное действие;
· неавторизованный посетитель обращается к защищенной странице;
· администратор меняет назначение и видит обновленный результат.
Правильный отказ должен происходить на уровне backend или базы, а не только в интерфейсе. В журнале не должны появляться пароли, токены и полное содержимое чувствительных заявок.
Привяжите GitHub раньше, чем проект станет важным
Официальная интеграция Lovable с GitHub синхронизирует код между проектом и репозиторием. Это дает историю, независимый просмотр diff и возможность продолжить разработку вне платформы.
Подключайте репозиторий после того, как первая структура стала осмысленной, но до большого числа правок. После подключения:
· проверьте, что репозиторий принадлежит нужной организации;
· настройте видимость и доступы;
· прочитайте первый коммит;
· убедитесь, что секреты не попали в файлы;
· создавайте небольшие изменения с понятными сообщениями;
· не редактируйте один и тот же участок одновременно в Lovable и локально.
GitHub не заменяет резервную копию базы. Он хранит код и историю изменений кода, но не обязательно пользовательские записи, загруженные файлы или настройки облачной среды.
Определите критерии готовности
Фраза «приложение работает» слишком размыта. Для кабинета заявок критерии могут быть такими:
· новая заявка сохраняется после обновления страницы;
· обязательные поля проверяются на сервере;
· менеджер видит только назначенные записи;
· администратор может переназначить заявку;
· повторная отправка не создает случайный дубль;
· ошибка backend отображается понятным сообщением;
· мобильный экран позволяет выполнить основной путь;
· секреты отсутствуют в репозитории и браузере;
· исходный код синхронизирован с GitHub;
· есть проверенный способ экспорта данных.
Передавайте Lovable один или два критерия за итерацию. После каждой правки смотрите, какие файлы изменились, и повторяйте старые проверки. Так исправление роли не сломает создание заявки.
Не принимайте визуальный успех за технический
Проведите отдельные проверки интерфейса и системы.
Для интерфейса:
· понятен ли следующий шаг без объяснения;
· видны ли загрузка, пустое состояние и ошибка;
· работает ли клавиатура;
· читается ли текст на мобильном экране;
· не маскирует ли анимация медленную операцию.
Для системы:
· сохранились ли данные после перезагрузки;
· что произойдет при двойном клике;
· можно ли открыть чужой объект по прямой ссылке;
· как ведет себя приложение при отключенной базе;
· появляется ли наблюдаемая ошибка в журнале;
· можно ли восстановить предыдущую рабочую версию.
Красивый dashboard обычно проверяет счастливый путь. Рабочее приложение отличается поведением на ошибках и границах.
Публикуйте через интерфейс и проверяйте опубликованную версию
В документации Lovable публикация выполняется через кнопку Publish. Перед ней платформа предлагает security review. Пройдите найденные замечания, но не считайте автоматическую проверку полной гарантией.
После публикации откройте выданный адрес в приватном окне браузера. Проверьте регистрацию, вход, выход, восстановление сессии, основное действие и запрет чужого доступа. Отдельно посмотрите метаданные страницы: название, описание, favicon и изображение для ссылок.
Если подключаете собственный домен, проверьте активный тариф, DNS и HTTPS по текущей документации. Сначала добейтесь стабильной работы на стандартном адресе Lovable, чтобы не смешивать ошибку приложения и настройку домена.
Что делать после первого релиза
Назначьте владельцев трех частей:
· продукта: решает, какие состояния и роли правильные;
· кода: принимает изменения и разбирает технические ошибки;
· данных: отвечает за доступ, резервные копии и удаление.
Собирайте не общие пожелания, а наблюдаемые сбои: «менеджер не увидел назначенную заявку», «двойной клик создал две записи», «на телефоне кнопка перекрыта клавиатурой». Каждый такой случай добавляйте в регрессионную проверку.
Не начинайте второй большой блок функций, пока никто не умеет восстановить первую версию. Минимум: репозиторий, список переменных окружения без значений, инструкция запуска, экспорт данных и понятный путь возврата.
Разбейте разработку на вертикальные срезы
Не создавайте сначала все экраны, потом всю базу и только в конце права. Соберите один путь целиком. Для заявок первый срез может состоять из формы, сохранения записи, списка менеджера и изменения статуса.
После него добавьте администратора, затем уведомление, затем сводку. Каждый срез должен иметь собственные критерии и рабочую версию в Git. Если четвертая функция сломалась, первые три остаются проверяемой основой.
Такой порядок помогает Lovable сохранять контекст задачи. Формулировка «добавь всю CRM» заставляет инструмент принять десятки связанных решений одновременно и усложняет review.
Проверяйте каждую миграцию данных
Когда Lovable меняет таблицу, уточните, что произойдет с существующими строками. Новое обязательное поле может не иметь значения у старых записей. Переименование может фактически создать новую колонку и оставить старые данные отдельно.
До применения попросите показать план миграции. Сделайте экспорт тестовой базы, выполните изменение и сравните количество записей, связи и права. Не меняйте рабочую схему из параллельных сессий.
После миграции повторите вход под каждой ролью. Ошибка в политике доступа может не проявиться в аккаунте администратора, которым обычно пользуется автор проекта.
Добавьте наблюдаемость до первых пользователей
Определите, где увидеть ошибку формы, backend-функции и базы. Лог должен содержать request ID, время и безопасный контекст, но не пароль, токен или полный текст чувствительной заявки.
Создайте тестовую ошибку и убедитесь, что владелец ее заметит. Если единственный сигнал приходит от пользователя в личном сообщении, приложение еще трудно поддерживать.
Сохраните инструкцию: где смотреть состояние публикации, логи и использование базы; кто имеет доступ; как отключить проблемную функцию. Панель Lovable удобна автору, но команда должна знать конкретный маршрут диагностики.
Проверьте мобильный и медленный сценарий
Откройте приложение на реальном телефоне и медленном соединении. Попробуйте отправить форму дважды, свернуть браузер во время запроса и вернуться назад. Кнопка должна блокировать повтор, loading завершаться, а введенные данные не исчезать без объяснения.
Проверьте клавиатуру, фокус, контраст и ошибки полей. Сгенерированный интерфейс может выглядеть аккуратно на широком экране, но основной пользовательский путь должен работать в реальных условиях.
План выхода из платформы
Один раз клонируйте GitHub-репозиторий и попробуйте запустить проект по README. Отдельно экспортируйте данные. Запишите, какие части требуют Lovable Cloud, Supabase или другого сервиса.
Выход не обязан быть бесплатным. Нужна ясность: код доступен, данные можно получить, домен контролирует команда, секреты перечислены без значений, а критичные интеграции документированы.
Перед следующим большим этапом попросите другого человека внести одну малую правку через обычный рабочий процесс. Он должен найти нужный файл, запустить проект, создать ветку, проверить preview и понять, где лежат данные. Вопросы этого теста покажут скрытую зависимость от автора и истории чата. Исправьте README, права и инструкции до подключения платежей или реальных клиентских данных.
После исправлений попросите коллегу повторить маршрут без подсказок и сохранить результат отдельным коммитом.
Практику перехода от задания к проверяемому приложению можно пройти на курсе «Вайб-кодинг: быстрый старт». Lovable в этом маршруте остается инструментом, а не заменой решениям о данных и доступе.
Хороший результат в Lovable измеряется не скоростью появления первого экрана. Он измеряется тем, может ли реальный пользователь пройти основной путь, не увидеть чужие данные и продолжить работу после следующего изменения.