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

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

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

Комментарии (11)


  1. house2008
    27.03.2026 04:12

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

    Есть же к_и-н-0_pu_б, открыли на любой платформе (я на Apple TV), выбираете нужный фильм/сериал (из последнего/горячего/популярного/нового) и там всегда есть трейлеры/оценки/описания/режиссер/актеры/куча озвучек без впн вроде, одной рукой ковыряетесь в носу, второй просто листаете фильмы, если понравился - сразу включаете просмотр, зачем эти усложнения со свайпами и отдельным сервисом.

    использовать YouTube Iframe API

    Вам статью нужно еще опубликовать в Иране и Сев Корее, как раз основная ца. Вы же понимаете, что зарубежная аудитория уже сидит в Nextflix/Amazon/Apple где скорее всего автоподборка встроена прямо в их приложения, если нет всегда можно сходить в imtb. Как раз если бы это работало в рф без впн возможно это как раз была бы фишка из-за чего многим было бы интересно без впн смотреть трейдеры с ютуб.

    Выглядит красиво.


    1. DGN
      27.03.2026 04:12

      Групповая автоподборка встроена?

      Задача ведь не только себе найти фильм, а фильм интересный группе лиц.


  1. dan_sw
    27.03.2026 04:12

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

    Вообще, подобного рода статьи часто несут в себе "самодискредитацию" и обесценивают любые Ваши трудозатраты, применяемые к данному проекту.. Зачем кому-то тратить время на "Ваш проект", когда любой желающий пользователь, не имеющий опыта в программировании и навыков разработки в принципе может сделать тоже самое, ещё может быть и лучше? Смысл устраивать Вашему приложению краш-тест, когда можно собрать своё "за выходные"? Вообще нет никакого смысла, как и обращать внимание на такой проект - можно тоже самое сделать по тому же алгоритму действий что и Вы, да ещё и сделать это лучше (особенно, если этим будет заниматься человек, который имеет опыт разработки).

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

    И обратную связь нет смысла давать в таком случае. Любой труд в рамках данного проекта обесценен, "раз я могу собрать такое сам за выходные". Зачем кому-то вообще его смотреть?... Ещё и время тратить на обратную связь...


    1. house2008
      27.03.2026 04:12

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


      1. iprs
        27.03.2026 04:12

        Так ведь многие еще и наивно верят, что их поделку купят за 100500 денег. То, что ее точно так же может сгенерировать обладатель этих денег - во внимание не принимается.


        1. DGN
          27.03.2026 04:12

          Это так себе аргумент. Идея ничего не стоит, а поделка это концепт. Его можно продать, Марк не даст соврать.


          1. iprs
            27.03.2026 04:12

            Если бы идеи ничего не стоили, не существовало бы авторского права и прочих патентов. Однако - существуют


          1. iprs
            27.03.2026 04:12

            И кстати - идея то стоящая. Не удивлюсь, если ее уже рассматривают на каком нибудь совещании в условном Кинопоиске


  1. DGN
    27.03.2026 04:12

    Внимание, вопрос. А как происходит первичный подбор? Imdb это порядка 5млн фильмов. Если гнать рандом, вы за вечер даже не увидите общее предложение.

    По идее, должно быть не просто да или нет, а кнопка "отстой не смотрел и не буду", "отстой, смотрел", "смотрел нравится", "просто смотрел", "прикольно, но не сейчас" и "да, смотреть".

    Весь этот выбор должен составлять реальную базу юзера, которая должна копиться. И надо понять, будет ли юзер в принципе смотреть второй раз, я например не могу смотреть два раза, а жена обожает.


  1. gravitytimewheel
    27.03.2026 04:12

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


  1. opusmode
    27.03.2026 04:12

    За старание плюс, а вот идейно не понятно - а зачем? Сложно, маршрут не понятен, много странных телодвижений