Как я в одиночку запустил 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 в одиночку - более чем реально. Главное - не бояться ошибок (особенно с хостингом!), выбирать простые и эффективные инструменты и планомерно двигаться вперед.
Буду рад услышать ваши мысли, критику и советы в комментариях!