AI написал код, но архитектуру PoC и деплой пришлось делать вручную: разбор пет-проекта MirrorVote
Современные инструменты на базе искусственного интеллекта позволяют за считанные часы сгенерировать работающий код приложения. Однако превращение этого кода в полноценный Proof of Concept требует решения архитектурных, инфраструктурных и организационных задач, которые AI пока не берёт на себя. Автор пет-проекта MirrorVote делится опытом: нейросеть написала весь код, но деплой, настройку платежей и обход ограничений пришлось делать вручную.
Разработчик под псевдонимом представил подробный разбор создания AI-помощника для выбора нарядов MirrorVote. Проект, названный «Выбор перед зеркалом», позволяет пользователям загружать несколько фотографий, получать AI-оценку образов и собирать мнение друзей через публичную ссылку для голосования. Весь исходный код был сгенерирован с помощью Claude Code, однако, как отмечает автор, это лишь малая часть работы. Основное время ушло на проектирование архитектуры, настройку инфраструктуры и решение организационных вопросов, которые AI не способен выполнить автономно. Идея проекта родилась из бытовой проблемы: людям часто сложно быстро решить, какой наряд выбрать, особенно в примерочной или перед важным событием — работой, свиданием, вечеринкой. Если хочется получить совет друзей, обычно приходится отправлять фотографии в мессенджер и получать что-то вроде «всё нормально». MirrorVote призван упорядочить этот процесс: система с помощью AI приводит снимки к единому виду — выравнивает фон, свет и позу, а затем оценивает наряды с учётом выбранного повода и позволяет сгенерировать публичную ссылку для голосования.
По словам разработчика, даже в эпоху AI для создания рабочего PoC необходимо пройти классический цикл SDLC, хотя и с упрощениями. Анализ требований сводится к минимальному пользовательскому сценарию, проектирование — к минимальной схеме базы данных и критичным интеграциям (авторизация, LLM, платежи). Реализация ведётся методом Vibe Coding, тестирование остаётся ручным, а развёртывание выполняется локально или на облачном VPS. Эксплуатация ограничивается базовой наблюдаемостью: просмотром логов, контролем доступности и стоимости внешних сервисов. Таким образом, AI ускоряет написание кода, но не отменяет необходимости в инженерных решениях. Автор подчёркивает: PoC — это не промышленное решение, поэтому на каждом этапе допустимы существенные упрощения, но сам цикл остаётся неизменным.
Архитектура MirrorVote включает несколько ключевых компонентов. Пользователь авторизуется через Google OAuth, получая JWT-токен. Затем он загружает фотографии, которые проходят проверку лимитов в PostgreSQL. Далее вызывается LLM через OpenRouter для анализа образов и формирования рекомендаций. Обработанные изображения сохраняются в Storage, а результаты анализа и оценки — в PostgreSQL, после чего лимит пользователя списывается. В основе бэкенда лежит managed Supabase, предоставляющий Edge Functions на Deno, базу данных PostgreSQL и файловое хранилище. Сетевая инфраструктура построена на VPS с Nginx, который выступает в роли веб-сервера и обратного прокси, маршрутизируя запросы к нужным сервисам. Такая схема, среди прочего, помогает обходить проблемы с доступностью Supabase для российских пользователей. Выбор managed-решения снижает объём инфраструктуры, которую приходится самостоятельно разворачивать и обслуживать, а Edge Functions хранят серверную логику, настройки и секретные ключи внешних API.
Примечательно, что проект является полноценным PWA: одна кодовая база обслуживает и веб-версию, и приложение на смартфоне. Для деплоя используются GitHub Actions, однако развёртывание Edge Functions и изменение схемы базы данных выполнялись вручную. Интеграция с внешними сервисами включает Google OAuth для авторизации, ЮKassa для приёма платежей и OpenRouter для доступа к LLM. Оплата AI-моделей происходит по фактическому потреблению API. Автор подчёркивает, что для российского проекта подключение платежей через ЮKassa потребовало регистрации в качестве самозанятого, создания лендинга и прохождения проверки. Кроме того, пришлось решать вопрос оплаты зарубежного сервиса OpenRouter из России, что стало отдельной задачей. Настройка Google OAuth требовала создания учётных данных в Google Cloud Console, а для HTTPS необходимо было получить TLS-сертификат Let's Encrypt через Certbot. Аренда VPS у Selectel, регистрация домена и настройка DNS — всё это выходит за рамки возможностей AI.
Контекст разработки показывает, что AI-генерация кода становится всё более популярной, но рыночные решения требуют комплексного подхода. Если AI пишет код, зачем нужен инженер? Ответ кроется в архитектурных решениях, обеспечении безопасности, управлении инфраструктурой и интеграции с внешними системами. Роль инженера смещается от написания кода к проектированию и организации процессов. Сравнение с альтернативами показывает, что MirrorVote не уникален в своём подходе: многие стартапы используют Supabase, Firebase или AWS Amplify для быстрого прототипирования. Однако выбор managed-решений накладывает ограничения, особенно в российском контексте. Firebase может быть недоступен без VPN, а AWS требует зарубежной карты для оплаты. В этом смысле Supabase с возможностью развернуть Edge Functions на Deno выглядит компромиссным вариантом, но и он требует обхода блокировок. Альтернативой могло бы стать полностью самостоятельное развёртывание на VPS с использованием open-source аналогов, но это увеличило бы время разработки. Автор выбрал баланс между скоростью и контролем.
Для российского рынка опыт MirrorVote особенно показателен. Ограничения на доступ к зарубежным сервисам, таким как Supabase, вынуждают использовать дополнительные прокси-решения. Платёжные интеграции требуют соблюдения местного законодательства, включая регистрацию самозанятости. Оплата зарубежных API становится логистической проблемой. Всё это создаёт барьеры, которые AI пока не может преодолеть. Тем не менее, подобные проекты демонстрируют, что даже в таких условиях можно создавать работающие PoC, если у разработчика есть инженерные навыки и понимание организационных тонкостей. Отрасль постепенно осознаёт, что AI — это инструмент, а не замена специалисту. В перспективе можно ожидать дальнейшей автоматизации архитектурных решений с помощью AI: уже сейчас существуют инструменты, предлагающие генерацию инфраструктуры как кода, но они требуют точной постановки задачи. В случае MirrorVote ключевым остаётся человеческий фактор — понимание требований, выбор технологий, обход ограничений.
Открытыми вопросами остаются масштабирование такого PoC до продакшена, обеспечение безопасности и устойчивости, а также оптимизация затрат на AI-модели. Пока же проект демонстрирует, что AI может написать код, но не может заменить инженера, способного превратить этот код в работающий продукт. История MirrorVote — это не просто кейс об использовании нейросетей, а напоминание о том, что за фасадом «вайб-кодинга» по-прежнему стоит сложная инженерная и организационная работа, без которой даже самый элегантный сгенерированный код останется лишь набором строк.