Как стать автором
Поиск
Написать публикацию
Обновить

Кейс: Как я, саунд-дизайнер без знаний кода, за 7 месяцев запустил SaaS-библиотеку звуков с помощью ИИ

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.4K

Привет! Меня зовут Илья Шмяк, я саунд-дизайнер. Моя работа — создавать звук для игр, кино, брендов. Я не программист, но у меня была гипотеза: можно ли в одиночку, используя только ИИ-ассистента, построить с нуля полноценный веб-сервис?

Спойлер: можно. Этот путь занял 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 может вырасти из пет-проекта в ценный ресурс для разработчиков игр, видеомейкеров и дизайнеров.

Если вам интересен этот кейс, поделитесь им с теми, кому он может быть полезен.

Спасибо, что уделили время! Буду рад ответить на любые вопросы в комментариях.

Теги:
Хабы:
+4
Комментарии8

Публикации

Ближайшие события