Вайбкодинг за выходные: как ручной QA-инженер собрал свой «Тиндер для кино» с помощью ИИ

Cразу сделаю чистосердечное признание: я ручной тестировщик. Я не умею писать код с закрытыми глазами, и да — эту статью мне тоже помог структурировать ИИ по моим промптам.Зато я умею декомпозировать задачи, выстраивать логику продукта и ломать то, что уже написано.

Меня бесила ситуация, когда я не могу подобрать себе фильм для просмотра. Обычно, у фильмов только скудное описание и рейтинг. Чтобы посмотреть трейлер нужно умудриться его найти. Да, можно прочитать отзывы, но там в основном рецензии на пару минут чтения

Я решил, что мне нужен инструмент, который превратит выбор фильма из рутины в развлечение. Бюджет — 0 рублей. Команда — я и нейросеть (Gemini 3.1 Pro).

В IT сейчас активно спорят про «вайбкодинг». Кто-то считает это абсолютным злом и костылестроением, кто-то — неизбежным будущим. Я решил проверить этот подход на практике и за выходные собрал MVP своего сервиса.

Концепт продукта (KiSwipe) и механика

Я сразу отказался от идеи классического Тиндера с карточками вправо/влево. Современный паттерн потребления — это короткие вертикальные видео. Поэтому я сделал кино-TikTok.

Показал механику работы приложения

Как это работает на практике:

  1. Вы заходите на сайт с телефона или с декстоп версии браузера. Вас встречает полноэкранная лента HD-трейлеров, которые запускаются автоматически.
  2. Свайпаете вверх-вниз. Увидели классный фильм — нажимаете иконку "Лайк" (сердечко) на панели справа и трейлер сохранился в избранное (иконка закладки в правом верхнем углу)
  3. Главная фича: Вы нажимаете на иконку "Мэтча" сверху и создаете «Связь» (Connection), например, назвав её «Жена».
  4. Приложение генерирует уникальную ссылку вида /?room=ID. Вы кидаете эту ссылку партнеру в любой мессенджер.
  5. Партнер переходит по ссылке, вводит имя с кем будет связь, и сессии связываются.
  6. Теперь вы оба сидите (каждый в своем телефоне) и свайпаете ленту. Сервер каждые пару секунд синхронизирует списки ваших лайков.
  7. Как только вы оба лайкнули один и тот же фильм — алгоритм ловит пересечение ID. На экранах обоих смартфонов блокируется лента и взрывается анимация «IT'S A MATCH!» с постером фильма. Выбор сделан, можно смотреть фильм
Уведа в центре экрана при совпадении фильмов, которые каждый сам добавил себе в избранное
Уведа в центре экрана при совпадении фильмов, которые каждый сам добавил себе в избранное
Интерфейс приложения
Интерфейс приложения

Выбор стека и битва с монолитом от ИИ

Так как я ставил задачу нейросети, мне нужно было максимально простое и легковесное окружение. Я попросил ИИ предложить стек для MVP, который можно быстро развернуть на дешевом VPS.

Ответ был таким:

  • Бэкенд: Node.js + Express. Идеально для легкого API и статики.
  • База данных: Отказались от тяжелых БД на старте. Информацию о фильмах тянем "на лету" через TMDB API, а комнаты, связи и лайки храним в оперативной памяти сервера (глобальные пулы) и в localStorage на клиенте.
  • Фронтенд: Чистый HTML/CSS/JS без фреймворков Для бесконечной вертикальной ленты видео взяли Swiper.js.

Первая реальная проблема вайбкодинга: Сначала нейросеть радостно выплюнула мне один гигантский index.js на 1000 строк, где смешалась логика плеера, UI, свайпов и работы с сервером.

Как QA, я понимал: тестировать и фиксить баги в таком спагетти-коде будет физически невозможно. Если сломается плеер, ИИ при переписывании монолита обязательно сломает мне верстку. Поэтому мне пришлось взять роль архитектора и заставить ИИ жестко разнести проект на модули: ui.js — только работа с DOM (модалки, кнопки, тосты, боттомшиты). player.js — инкапсулированная логика YouTube Iframe API. swiper.js — логика подгрузки новых фильмов (пагинация) и тайминги свайпа. storage.js — работа с локальной памятью.

Это решение спасло проект. Когда мне нужно было изменить логику свайпов или меню фильтров, я кидал нейросети только один конкретный файл, не рискуя сломать всё остальное. ИИ — отличный кодер, но отвратительный архитектор без строгого контроля.

Главный босс: Проблема с YouTube и переезд на Запад

Основа приложения — это трейлеры. Самый простой способ их показывать — использовать YouTube Iframe API. И тут я, тестируя проект из РФ, столкнулся с непреодолимой технической стеной: блокировка и замедление работы видеохостинга. Провайдер не отдавал ошибку, он просто "вешал" соединение. В итоге всё приложение замирало в бесконечном лоадере.

Я понимал, что просить пользователей применять сторонние инструменты обхода сети — это утопия, конверсия будет нулевой.

Я принял решение сразу делать проект под зарубежный рынок. Перевел весь интерфейс на английский, а базу TMDB заставил отдавать описания фильмов и стриминги (Netflix, Hulu, Amazon) для региона US.

Итоги и приглашение к краш-тесту

Проект KiSwipe (https://kiswipe.com) задеплоен и работает в десктоп и мобильных версиях браузера

Конечно, сейчас я ломаю голову над главной проблемой любого фаундера — где брать трафик, если у тебя нулевой бюджет на маркетинг.

Я уже начал собирать отдельного ИИ-Агента (микросервис на базе FFmpeg и OpenAI API), который автоматически генерирует вирусные Reels/Shorts для продвижения проекта качает видео, делает нарезки, пишет скандальные теории, озвучивает их и клеит видео), но это тема для отдельной большой статьи.

Как вы думаете есть ли будущее у этого проекта? Нравится ли вам идея такого подбора фильмов или идея мертвая изначально? Где привлекать трафик?
В общем, хочется слышать любые мнения
Пока проект бесплатный, в будущем возможна монетизация за счет продажи подписок на стриминговые сервисы?

1
1
Начать дискуссию