Как я в одиночку запустил MVP-проект на Next.js и Supabase за месяц: от идеи до деплоя

Привет, VC!

Меня зовут Игорь, я веб-разработчик. Хочу поделиться историей создания своего пет-проекта GeekGift - от идеи, которая родилась из вечной проблемы "что дарить коллегам", до работающего 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 и никаких лимитов

Результат и первые шаги

В итоге получился вот такой сервис: geekgift.ru

На данный момент в базе 36 отобранных вручную товаров в двух категориях. Я написал первую статью в блог и начал потихоньку делиться ссылкой на профильных ресурсах, вроде Пикабу. Первые 10-20 целевых посетителей уже пришли.

Главный вывод, который я сделал: запустить свой MVP в одиночку - более чем реально. Главное - не бояться ошибок (особенно с хостингом!), выбирать простые и эффективные инструменты и планомерно двигаться вперед.

Буду рад услышать ваши мысли, критику и советы в комментариях!

Как я в одиночку запустил MVP-проект на Next.js и Supabase за месяц: от идеи до деплоя
3
2 комментария