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

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

Я решил, что мне нужен инструмент, который превратит выбор фильма из рутины в развлечение. Бюджет — 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 задеплоен и работает в десктоп и мобильных версиях браузера.

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

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

Как ручной тестировщик, я прокликал основные сценарии, но глаз уже замылился. Буду очень рад, если сообщество Хабра зайдет и устроит моему приложению жесткий краш-тест.

Пишите любые найденные баги, критикуйте UI/UX (например, левый сайдбар для фильтров), ругайте вайбкодинг — для меня сейчас нет ничего ценнее вашей суровой обратной связи!