Блог
Как сделать SaaS без своей базы данных — и не нарушить 152-ФЗ
Большинство SaaS-сервисов — это «база данных с интерфейсом». Юзер логинится, грузит документы, мы храним всё на сервере. Это самая дорогая часть инфраструктуры (бэкапы, GDPR, 152-ФЗ, гарантии) и самая медленная для разработки.
В SeoForge мы пошли другим путём. Хранится только связка customer_id ↔ plan ↔ expires_at. Всё остальное — в браузере. Вот как это сделано и какие задачи это закрывает.
Что хранится на сервере
Всего 3 поля в Cloudflare D1:
CREATE TABLE customers (
customer_id TEXT PRIMARY KEY,
email TEXT NOT NULL,
plan TEXT NOT NULL DEFAULT 'free',
expires_at INTEGER NOT NULL
);
И ещё одна таблица — лог платёжных вебхуков (для аудита платежей). Всё.
Что НЕ хранится
- Тексты ваших брифов — генерируются LLM и сразу отдаются юзеру
- CSV редиректов — парсятся в браузере через Papa Parse, на сервер не уходят
- JSON-LD разметка — рендерится в браузере на чистом TypeScript
- OG-картинки — рендерятся по URL-параметрам через next/og и кэшируются на CDN без привязки к юзеру
Почему это работает
Все 4 инструмента — stateless. Каждый запрос юзера — это вход → обработка → выход. Никакая история не нужна.
Если истории нет — то и базу хранить нечего. Если базы нет — нет 152-ФЗ, нет GDPR-проблем, нет бэкапов, нет инцидентов утечки.
Что мы теряем
- Сохранённые проекты — у юзера нет «моих сохранённых брифов на сервере». Если хочет сохранить — копирует в Notion или скачивает .md файл.
- Командная работа — нет шаринга проектов между членами команды на нашем сервере. Шарят через свои инструменты (Notion, Slack).
- Аналитика для юзера — нет дашборда «сколько ты сгенерил». Юзер сам считает (или не считает).
Что мы выигрываем
- Скорость разработки. 4 инструмента за 4 месяца одним разработчиком — потому что не пишем CRUD, миграции, бэкапы.
- Дешёвая инфраструктура. Cloudflare D1 + Pages + Workers — $5/мес для 5000 платящих. Без D1 было бы $100-300 (Postgres + бэкапы + мониторинг).
- 152-ФЗ под кэп. Юзерский контент не хранится — значит не обрабатываем ПД в смысле закона.
Когда так нельзя
Если твой продукт — CRM, заметки, документы, чат, файлохранилище — без своей БД не обойтись. Юзер заходит, хочет видеть «свои данные».
Но если продукт — генератор, конвертер, калькулятор, валидатор — попробуй обойтись без БД. Это в разы быстрее в разработке и сильно дешевле в поддержке.
Стек SeoForge
- Next.js 15 + React 19 — frontend
- Cloudflare Pages — хостинг ($0 до 100k запросов/день)
- Cloudflare D1 — единственная база (3 поля)
- Cloudflare Workers —
/api/og(динамический рендер картинок) - Lava.top — платежи
- Resend — magic-link email
- Claude Haiku 4.5 — генерация брифов (~$0.001 за бриф)
Стоимость инфры на 5000 платящих юзеров с MRR ~$95k — около $50/мес.
Главный вывод
Если ты делаешь SaaS — задай себе вопрос: «а нужно ли хранить пользовательский контент?». Если нет — не храни. Это снимет 70% инфраструктурных затрат и юридических проблем.
Понравилась статья?
Подпишись — пришлём 1 письмо в 2 недели, без спама.