Привет! Меня зовут Илья Шмяк, я саунд-дизайнер. Моя работа — создавать звук для игр, кино, брендов. Я не программист, но у меня была гипотеза: можно ли в одиночку, используя только ИИ-ассистента, построить с нуля полноценный веб-сервис?
Спойлер: можно. Этот путь занял 7 месяцев и привел к запуску noise pw — библиотеки уникальных звуков. Это не просто история успеха, а разбор факапов, технических решений и текущей экономики проекта.
Этап 1. Гипотеза и MVP: Иллюзия простоты и первые ошибки фронтенда
Все началось с идеи создать платформу для продажи моих звуков и музыки. Моим единственным техническим специалистом стал ChatGPT.
Я начал с анализа референсов, чтобы понять технологический стек. ИИ порекомендовал Jekyll — генератор статических сайтов, как «быстрый, безопасный и простой». На тот момент я не осознавал концепции бэкенда и считал, что сайт — это просто набор HTML-страниц. Весь первый этап был посвящен созданию клиентской части (фронтенда):
UI/UX итерации: Я часами двигал элементы, менял шрифты и тестировал модальные окна. ИИ часто генерировал нерабочий код, требуя постоянных уточнений.
Решение микро-задач: Простые, на первый взгляд, вещи («остановить другой трек при нажатии на Play», «корректное отображение модального окна») превращались в многодневные квесты с отладкой кода, сгенерированного нейросетью.
Баланс между идеей и реализацией: Я постоянно сталкивался с дилеммой: отказаться от сложной фичи (например, динамической визуализации волны) или разбить ее на десятки микроскопических шагов, понятных для ИИ.
Результат этапа: Красивый, интерактивный, но абсолютно нежизнеспособный сайт-витрина на локальном компьютере. Первая часть гипотезы подтвердилась: создать фронтенд с ИИ можно. Но продукт был еще далек от реальности.
Этап 2. Первый релиз и столкновение с реальностью: Проблемы бэкенда
Я разместил статические файлы на GitHub Pages. Сайт заработал онлайн. И тут же возник пул задач, которые я не предусмотрел: корзина, скачивание файлов после оплаты, регистрация и аутентификация пользователей, подтверждение email, прием платежей.
Стало очевидно, что нужен бэкенд — серверная логика, которая будет всем этим управлять.
Этап 3. Поиск стека, урок по 152-ФЗ и полный рестарт
Я начал хаотично тестировать разные решения, которые предлагал ChatGPT. Пытался интегрировать Auth0 для авторизации и Supabase для базы данных, развернуть Node.js на хостинге Beget. Все это было похоже на сборку монстра из непонятных мне частей.
В итоге я выбрал бюджетную и удобную связку Yandex Cloud + Auth0. И тут же совершил две критические ошибки:
Операционная ошибка: Случайно подключил платную услугу в Yandex Cloud, что привело к блокировке аккаунта и долгу в 5000 рублей. Пришлось регистрировать новый аккаунт и переносить весь фронтенд.
Архитектурная ошибка: Я не учел требования ФЗ-152 о хранении персональных данных граждан РФ на территории России. Мой сервис аутентификации Auth0 с серверами за границей не подходил.
Вся архитектура бэкенда снова рассыпалась. Пришлось начинать с нуля, в третий раз.
Этап 4. Финальная архитектура: Отладка и запуск на Yandex Cloud
Я принял решение — строить всю инфраструктуру на serverless-компонентах одного Yandex Cloud, а для рассылок я подключил Unisender. Этот этап превратил меня из «промпт-инженера» в настоящего отладчика.
-
Проблема №1: Аутентификация облачной функции. Первая же функция, которая должна была обращаться к базе данных Yandex Database, выдавала ошибку Unauthenticated.
Расследование: Логи указывали на отсутствие прав. Я выдал сервисному аккаунту необходимую роль (ydb.editor), но это не помогло.
Решение: Проблема была в коде от ИИ. Он был написан для локального запуска и искал статические секретные ключи. В облачной среде аутентификация происходит через временные IAM-токены. Пришлось глубоко изучить документацию и заставить ИИ переписать логику авторизации с использованием нативного SDK. На это ушло несколько недель.
-
Проблема №2: Политика CORS. После настройки бэкенда фронтенд не мог к нему достучаться из-за политики безопасности браузера.
Расследование: Браузер блокировал кросс-доменные запросы, так как API-шлюз не отправлял разрешающие заголовки.
Решение: Потребовалось создать отдельную "пустую" облачную функцию cors-handler и настроить в API Gateway так, чтобы она отвечала на все OPTIONS запросы, подтверждая, что мой домен имеет право обращаться к API.
-
Проблема №3: Внезапное изменение тарифа стороннего сервиса, сломавшее регистрацию.
Расследование: В один момент письма для подтверждения регистрации просто перестали доставляться новым пользователям. Я потратил несколько дней на проверку DNS-записей (DKIM, SPF), предполагая, что проблема в спам-фильтрах, но всё было настроено корректно. Обращение в техподдержку Unisender вскрыло реальную причину. Их API перестал работать для отправки писем на адреса, которых еще нет в базе контактов. Это полностью блокировало флоу регистрации: новый пользователь физически не мог получить письмо для подтверждения своего email.
Решение: Здесь стоит отдать должное поддержке Unisender. Они не только оперативно объяснили причину, но и, войдя в положение, предоставили 1000 бонусных рублей на счет для плавного старта проекта. Их ключевая рекомендация — перейти на их же специализированный сервис для транзакционных писем Unisender Go. Он изначально предназначен для таких задач, как подтверждение регистрации, и оказался даже более выгодным по стоимости. Я оперативно переписал код интеграции под новое API, и регистрация заработала. Этот случай стал хорошим уроком о том, как важно учитывать риски, связанные с изменением условий использования сторонних сервисов.
Продукт и стек: Как это работает сейчас
В итоге получилась полностью serverless-архитектура, построенная на сервисах Yandex Cloud:
Фронтенд: Статические HTML/CSS/JS файлы в Yandex Object Storage.
CDN: Yandex Cloud CDN для быстрой доставки контента по всему миру.
Бэкенд (Бизнес-логика): 10 serverless-функций (Yandex Cloud Functions) на Node.js (регистрация, платежи, генерация ссылок на скачивание и т.д.).
База данных: Serverless-СУБД Yandex Managed Service for YDB (пользователи, балансы, транзакции).
API: Yandex API Gateway для управления запросами к функциям.
Файловое хранилище: Приватный бакет в Object Storage для хранения аудиофайлов.
Инфраструктура и безопасность: IAM (управление доступом), Lockbox (хранение секретов), Certificate Manager (бесплатный SSL), Cloud DNS.
Текущая экономика и ключевые выводы
Выводы из 7-месячного марафона:
ИИ — это инструмент, а не разработчик. Слепое копирование кода ведет в тупик. ИИ ускоряет, но не заменяет необходимости разбираться в документации и основах.
Архитектура и юридические аспекты — первичны. Фокус на фронтенде без понимания бэкенда и законодательных требований — это потеря времени.
Отладка — это 90% работы. Написание кода с ИИ — быстро. Поиск причин, почему он не работает в реальной среде — долго.
Операционные расходы на текущем этапе:
Yandex Cloud: ~164 ₽/мес. (стоимость будет масштабироваться с ростом нагрузки).
Почта на домене (Beget): 600 ₽/мес. (требование для корректной работы DKIM).
Домен: 3600 ₽/год.
Транзакционные письма (Unisender Go): 400 ₽/мес.
Маркетинговые рассылки (Unisender): Бесплатный тариф, с ростом базы — 8064 ₽/год.
Итого, минимальные ежемесячные расходы на поддержание проекта: ~1464 рублей.
Что дальше?
Техническая часть проекта готова. Платформа принимает пользователей, обрабатывает платежи и доставляет контент. Но инструмент бесполезен, если о нем никто не знает. Технический марафон закончен, начинается маркетинговый.
Я верю, что Noise. pw может вырасти из пет-проекта в ценный ресурс для разработчиков игр, видеомейкеров и дизайнеров.
Если вам интересен этот кейс, поделитесь им с теми, кому он может быть полезен.
Спасибо, что уделили время! Буду рад ответить на любые вопросы в комментариях.
Комментарии (7)
Zara6502
25.08.2025 09:17я примерно так дома ремонт делаю ) без знаний того и сего, получается так и сяк, но факт остается фактом - без знаний сделать можно!
тут скорее полезно узнать что многие с ИИ справляются куда лучше чем я, хотя я вроде и айтишник и почти программист, но вот как-то у ИИ вытащить что-то удобоваримое у меня не получается, а проверка кода занимает больше времени как и попытка понять что там ИИ натворил, а я ненавижу читать чужой код )
m039
25.08.2025 09:17ИИ для меня часто теперь заменяет Stack Overflow. Проверять, конечно, обязательно, но на базовые вопросы, на которые есть прямые ответы в интернете, она очень хорошо отвечает. А вот с комплексными задачами, с вами отчасти согласен, то что оно выдает замучаешься править, проще заново самому. Но вот, правда, вайбкодинг, как понимаю, это когда с ИИ постоянно общаешься и объясняешь ей что и где поправить в её ответах, т.е. кому не проще самому заново написать, им возможно проще объяснить ИИ как что поправить. Я лишь хочу сказать, что с ИИ надо учится пользоваться постепенно, из-за того, что проще самому написать, меньше разбираешься как общаться с ИИ. Но может оно и нормально.
Zara6502
25.08.2025 09:17ИИ как база знаний и как интерактивный помощник, я именно так и пользуюсь. Из-за того что не пользуюсь платными сервисами вероятно и не могу добиться от ИИ нужного, но пока объясняешь одно он ломает другое, то есть сквозной связности проекта я не вижу от ИИ, и это в рамках одного небольшого метода, а как с ИИ делать проекты на 10-100 файлов я вообще не представляю, там самому бы не забыть как это делать.
Про вайб кодинг (что бы это не значило) - ну вот смотрите, вы ему говорите что хотите, он вам дал 100 файлов - как вы определите правильно оно работает или нет? Ну допустим с какими-то исходными данными оно вам даст верный результат, а когда вы этот сервер поставите в боевую - придут другие данные, пользователи не так будут что-то делать, у вас проект перестает работать, а где искать проблему? ИИ сам найдёт? Как-то я пока не вижу такого уровня кодинга от ИИ. Если он такой крутой то почему сразу правильно не написал и приходится исправлять? В общем вопросы есть.
И мне кажется ИИ пишет как тот майкрософтовский WISYWIG редактор сайтов - для Hello World! 100 строк и 10 файлов со стилями вместо одного HTML на 12 байт.
m039
25.08.2025 09:17Понимаю, просто видна тенденция, что ИИ очень быстро развивается и возможно эти все проблемы уже решают или решены.
И мне кажется ИИ пишет как тот майкрософтовский WISYWIG редактор сайтов - для Hello World!
Люди, которые писали на ассемблере, про С++ также говорят, да что там и продолжают сейчас так говорить :)
Zara6502
25.08.2025 09:17про современный C++ не скажу, не пишу и не сверяю asm код, но под DOS на Turbo C писал и сравнивал и довольно хорошо там всё компилилось, но это Си, а вот на Си++ не подскажу.
Quiensabe
25.08.2025 09:17Домен: 3600 ₽/год
Как то очень дофига за домен.
ежемесячные расходы на поддержание проекта: ~1464 рублей
Не проще было за меньшую сумму взять VDS, хоть на том же бегете и там развернуть простой бэкенд (по подсказкам того же ИИ)? У вас конечно в плане масштабирования возможностей больше, но и рисков чего то не учесть и внезапно улететь в глубокий минус на каком-то сервисе - куда больше. Без ясной стратегии маркетинга и опыта разработки, стоило ли первый MVP делать serverless?
uuger
У меня знакомый в прошлом году "без знаний кода" навайбкодил телеграм бота с, извините, таро - через несколько месяцев свернул проект, так как примитивное (почти целиком текстовое) приложение жрало ресурсы хостинга как не в себя. А тех самых знаний оказалось недостаточно, чтобы понять в какую сторону бежать, чтобы хоть как-то решить эту проблему.