Экспорт из Roboweb — это фуллстек-проект на Next.js, Prisma и PostgreSQL, который можно запустить у себя и дорабатывать руками. Но у любого сгенерированного каркаса есть своя логика и свои ограничения, и их лучше узнать до первого коммита. Разберём, что лежит в архиве, где искать интерфейс, серверный код и схему данных, как подключить базу, запустить проект локально и с каких доработок начать.
Что выгружается: фронтенд, бэкенд, схема базы и аккаунты
Экспорт кода недоступен на бесплатном тарифе и входит в Премиум. Он детерминированный: при выгрузке ИИ не участвует, проект собирается из того, что уже есть в редакторе. Экспорт списывает энергию. Результат — ZIP-архив, который можно залить в любой Git-репозиторий: GitFlic, GitHub, GitLab или внутренний сервер компании. Для GitHub есть выгрузка прямо из кабинета: в подключённом аккаунте GitHub создаётся новый публичный репозиторий с кодом. Публикация в GitHub Pages — отдельная функция: это статический хостинг, API-маршруты Next.js и Prisma он не запускает.
Стек:
- Next.js 15 с App Router и React 19;
- Prisma 6 и PostgreSQL;
- bcryptjs для хеширования паролей;
- TypeScript 5.
Что работает сразу после запуска:
- формы сохраняют заявки в PostgreSQL через Prisma;
- каталоги читаются с сервера;
- аккаунты посетителей: регистрация и вход, пароли в bcrypt, сессия в httpOnly-cookie, ограничение частоты запросов;
- личный кабинет показывает только записи вошедшего пользователя;
- корзина хранится в браузере, а сумма заказа при оформлении считается на сервере по ценам каталога;
- серверные функции проекта перенесены в API-маршруты.
Как ориентироваться в проекте Next.js: маршруты, интерфейс, серверный код
| Файл или папка | Что внутри |
|---|---|
| package.json | Зависимости и скрипты dev, build, start, db:push |
| prisma/schema.prisma | Модели данных проекта |
| lib/prisma.ts | Клиент Prisma |
| lib/session.ts, lib/auth.ts | Сессии и авторизация |
| lib/ratelimit.ts | Ограничение частоты запросов |
| app/api/auth/… | Регистрация, вход, выход, текущий пользователь |
| app/api/data/[table]/route.ts | Чтение и запись данных с правами по таблицам |
| app/api/fn/…/route.ts | Серверные функции, включая оформление заказа |
| app/_site.ts, app/page.tsx | Разметка интерфейса и её вывод |
| public/rw-export.js | Поведение форм, каталогов, кабинета и корзины |
| .env.example, README.md | Переменные окружения, запуск и ограничения |
Главное, что нужно знать об интерфейсе: он переносится один в один как HTML-разметка. Файл app/_site.ts хранит разметку, app/page.tsx выводит её, а public/rw-export.js оживляет формы, каталоги, аккаунты, личный кабинет, корзину и оформление заказа. Это не набор React-компонентов по экранам. Если команде удобнее компонентный подход, разметку раскладывают на компоненты сами — постепенно, по одному блоку, проверяя сценарии после каждого шага.
Серверная часть — обработчики маршрутов App Router в папке app/api. Маршрут app/api/data/[table]/route.ts отвечает за чтение и запись с правами по таблицам: с него стоит начинать проверку того, кто что может читать и менять. Маршрут app/api/fn/checkout/route.ts появляется, если в проекте есть оформление заказа. Остальное — корневой app/layout.tsx, стили в app/globals.css, конфигурация в next.config.mjs и tsconfig.json.
Prisma-схема как карта данных продукта
Файл prisma/schema.prisma стоит прочитать целиком и первым. Модели в нём соответствуют данным продукта: заявкам из форм, позициям каталога, аккаунтам, заказам. Конкретный набор зависит от того, что было собрано в проекте.
Ограничения схемы, честно описанные в README:
- поля данных в моделях имеют тип String? (типизированы только служебные id, createdAt и модели аккаунтов) — числа, даты, цены и связи между моделями уточняет разработчик;
- схема разворачивается через prisma db push, миграций в комплекте нет;
- один экспорт рассчитан на одну базу данных.
Что из этого следует. На этапе разработки db push удобен. Перед продом разумно перейти на миграции, а типы полей ужесточать осознанно: превращение строки в число или дату требует проверки уже накопленных данных. Как сделать это без потерь, разобрано в статье о Prisma-миграциях в выгруженном проекте.
Условный пример: в модели заказа сумма хранится строкой. Для отчётов и сортировки её логично сделать числовым типом — но сначала убедитесь, что во всех существующих записях там действительно число.
Переменные окружения и подключение к PostgreSQL
В архиве есть .env.example с переменной DATABASE_URL — строкой подключения к PostgreSQL. Скопируйте файл в .env и подставьте свои значения: пользователя, пароль, хост, порт и имя базы. Формат строки стандартный для Prisma: postgresql://пользователь:пароль@хост:5432/имя-базы.
Что проверить:
- .env не попадает в репозиторий — .gitignore в архиве есть, но убедитесь сами до первого push;
- у локальной разработки и продакшена разные базы и разные строки подключения;
- пользователь базы в продакшене не имеет больше прав, чем нужно приложению.
Безопасность из коробки — это каркас, а не решение промышленного уровня. README прямо перечисляет, что нужно до выхода в прод: HTTPS, доверенный reverse-proxy перед приложением и периодическая чистка просроченных сессий. Где разместить проект с учётом этих требований, разобрано в статье о размещении проекта на Next.js и PostgreSQL.
Локальный запуск: типовая последовательность
Точные команды и оговорки сверяйте с README.md и package.json своего архива. Типовой порядок такой:
- Распакуйте архив или склонируйте репозиторий и прочитайте README.md.
- Установите актуальную LTS-версию Node.js, если её ещё нет.
- Поднимите PostgreSQL — локально или в контейнере — и создайте пустую базу.
- Скопируйте .env.example в .env и пропишите DATABASE_URL.
- Установите зависимости: npm install.
- Создайте таблицы по схеме: npm run db:push.
- Запустите режим разработки: npm run dev — по умолчанию Next.js открывается на localhost:3000.
- Пройдите сценарии руками: отправьте форму, зарегистрируйтесь, войдите, откройте кабинет, оформите заказ. База после db:push пустая: чтобы оформление заказа сработало, сначала наполните таблицу каталога товарами, чьи id совпадают с data-id кнопок добавления в корзину, — это условие указано в README.
- Проверьте продакшен-сборку: npm run build, затем npm run start. Скрипт build сначала выполняет prisma generate, потом next build.
С чего начать доработку: первые безопасные изменения
Порядок, который снижает риск сломать то, что уже работает:
- Зафиксируйте исходное состояние. Первый коммит — архив как есть, без правок. К нему всегда можно вернуться и сравнить.
- Прочитайте README и схему. Ограничения каркаса лучше знать до того, как вы на них наткнётесь.
- Проведите ревью. Права в app/api/data, сессии, ограничение частоты, обработка ошибок — пошаговый чек-лист есть в статье о код-ревью сгенерированного кода.
- Уточните типы и перейдите на миграции. По одной модели за раз, с проверкой данных.
- Ужесточайте TypeScript постепенно. В tsconfig.json стоит strict: false — это осознанное решение: строгий режим разработчик включает сам, по мере того как уточняет типы.
- Разложите разметку на компоненты там, где это окупается. Начните с блоков, которые будете менять чаще всего.
- Добавьте то, чего в каркасе нет: HTTPS и reverse-proxy на площадке, регулярную чистку просроченных сессий.
Экспорт — функционально полный фуллстек-каркас, но не релиз, готовый к проду. Ревью, типы, миграции и настройка окружения — работа разработчика, и её стоит заложить в план.
Чем такой экспорт отличается от того, что можно забрать из конструкторов шаблонов, разобрано в сравнении ИИ-сборки и конструкторов. И последнее: договоритесь в команде, где живёт основная версия продукта. Если часть доработок удобнее продолжать в редакторе — как формулировать такие задачи, описано в статье о правках словами, — заранее решите, как новые изменения будут попадать в репозиторий: свежий архив собирается из состояния редактора и ручных правок разработчика не содержит. Иначе придётся вести две параллельные версии.


