Как я в одиночку запустил MVP-проект на Next.js и Supabase за месяц: от идеи до деплоя
Привет, Хабр!
Меня зовут Игорь, я веб‑разработчик. Хочу поделиться историей создания своего пет‑проекта - генератора подарков для гиков - от идеи, которая родилась из вечной проблемы «что дарить коллегам», до работающего MVP, первых реальных пользователей и кучи шишек, набитых по пути.
Статья будет полезна тем, кто, как и я, хочет в одиночку запустить свой проект, но не знает, с чего начать, какой стек выбрать и, самое главное, каких граблей можно избежать.
Идея и концепция
Все началось перед очередным праздником. Снова встал вопрос: что подарить друзьям‑разработчикам и знакомым, увлекающимся аниме? Поиск в гугле выдавал одно и то же: кружки с кодом, носки, сертификаты... Банальщина, которая никому по‑настоящему не нужна.
Так родилась идея: создать сервис, который бы предлагал небанальные, вручную отобранные подарки для гиков.
Основные принципы проекта:
Никакой регистрации: Максимально быстрый доступ к идеям.
Ручной отбор: Я сам ищу и добавляю каждый товар, чтобы избежать мусорных рекомендаций.
«Вайб», а не категории: Вместо скучных «кружки» или «футболки», я хотел сделать упор на интересы: «для фаната уютных ферм», «для любителя киберпанка» и т. д.
Фокус на MVP: Для старта я взял две близкие мне ниши - IT и Аниме.
Выбор стека: Скорость и простота
Так как я делал проект один и в свободное от основной работы время, ключевым фактором был быстрый старт.
Фронтенд: Next.js. Выбор был очевиден. Отличный DX (Developer Experience), рендеринг на стороне сервера (SSR) для будущего SEO, огромное сообщество и куча готовых решений.
Бэкенд и База данных: Supabase. Я не хотел тратить время на написание своего бэкенда с нуля. Supabase стал идеальным решением: это, по сути, Postgres с готовым REST API «из коробки», плюс встроенная аутентификация (которая мне еще пригодится) и щедрый бесплатный тариф. Для MVP - просто подарок.
Стек был выбран, код написан, и тут я подошел к самому интересному...
Главный урок: Хостинг - это не просто
Я был уверен, что с деплоем проблем не будет. Мой план был прост: найти самый дешевый «виртуальный хостинг с поддержкой Node.js», закинуть туда билд и запустить. Это было моей главной ошибкой.
Я потратил почти два дня, пытаясь заставить проект работать на таком хостинге, и столкнулся с тремя фундаментальными проблемами:
Устаревшая версия Node.js: Хостинг предлагал на выбор несколько версий, но все они были слишком старыми для последней версии Next.js.
Лимиты файловой системы:
node_modules- папка довольно «пухлая». Я постоянно упирался в лимит на количество файлов (inode limit), иnpm installпросто не мог завершиться.Отсутствие прав: Я не мог установить нужные мне глобальные пакеты или настроить переменные окружения так, как мне было нужно.
Вывод был болезненным, но очевидным: для современных JS‑фреймворков «виртуальный хостинг» не подходит.
Пришлось переходить на VDS/VPS. Я взял самый простой тариф с 1 ядром, 2 ГБ RAM и Ubuntu 22.04 LTS. Настройка заняла несколько часов по гайдам, но результат того стоил. Связка оказалась классической:
Nginx в качестве реверс‑прокси.
PM2 для управления процессом приложения (чтобы оно само перезапускалось).
Теперь у меня была полная свобода, свежая версия Node.js и никаких лимитов
Монетизация и юридические аспекты
С самого начала я хотел, чтобы проект мог хотя бы оплачивать свой хостинг.
Партнер: Выбор пал на партнерскую программу Яндекс.Маркета.
Юридический статус: Чтобы легально работать с Яндексом, я зарегистрировался как самозанятый. Весь процесс в приложении «Мой налог» занял 15 минут.
Маркировка рекламы: Пришлось также разобраться с новым законом о маркировке. Яндекс сам предоставляет
erid(токен) для каждого товара, моя задача - просто разместить его на сайте рядом с товарной карточкой.
Результат и первые шаги
В итоге получился сервис, который решает мою изначальную проблему. Ссылка на него и на мой GitHub есть в моем профиле на Хабре.
Планы на будущее и выводы
Добавлять новые категории. В планах - геймеры, дорамы
Развивать блог. Контент‑маркетинг должен стать основным источником трафика.
Собирать фидбэк. Слушать, что говорят первые пользователи, и улучшать продукт.
Главный вывод, который я сделал: запустить свой MVP в одиночку - более чем реально. Главное - не бояться ошибок (особенно с хостингом!), выбирать простые и эффективные инструменты и планомерно двигаться вперед.
Буду рад услышать ваши мысли, критику и советы в комментариях!