Перейти к содержимому

Seed

Почему Seed: бесплатный SaaS-стартер на веб-стандартах

Опубликовано · 3 мин чтения· Anton Shubin

Коротко

  • Seed — бесплатный SaaS-стартер под MIT. Вы копируете его, и каждая строка становится вашей.
  • Вход, группы с ролями, оплата через Stripe, реалтайм, офлайн и админка уже готовы.
  • Серверы говорят на Fetch, Web Crypto и WebSocket, поэтому код не привязан к одному рантайму.
  • Не берите его, если вам нужны serverless-функции или чужой готовый бэкенд.

Seed — бесплатный SaaS-стартер на веб-стандартах: вы копируете один репозиторий и сразу получаете работающие вход, группы с ролями, оплату через Stripe за каждого участника, обновления в реальном времени, офлайн-приложение, админку и публичный сайт. Лицензия MIT, всё работает на одном сервере, который вы контролируете, а серверный код написан на Request и Response из Fetch, Web Crypto и WebSocket, а не на закрытом API одного рантайма.

Я Антон, делаю SaaS MVP для клиентов, и Seed — то, с чего я их начинаю. Длинная история (80 с лишним проектов, неудачная первая версия и 52 коммита на настройку до первой фичи) — у меня в блоге, на английском: Seed: the SaaS starter I distilled from 80+ projects. Здесь — короткая версия для разработчика, который решает, пробовать ли.

Что есть в Seed с первого дня?

Всё, что нужно любому продукту с несколькими пользователями до первой настоящей фичи:

  • Готовый вход. Почта и пароль с кодом подтверждения, ключи доступа (passkeys), Google и GitHub, ссылки для входа по почте и гостевой аккаунт, который посетитель открывает в один клик и сохраняет позже. Второй фактор через приложение-аутентификатор, список сессий, из которых можно выйти, и личные API-токены, которые хранятся только в виде хешей.
  • Группы как граница между клиентами. Регистрация создаёт аккаунт, сессию и первую группу в одной транзакции. Личное пространство и команда — одно и то же, с теми же четырьмя ролями от зрителя до владельца.
  • Оплата за участника через Stripe. Бесплатный тариф с лимитами, пробный период на 14 дней, количество мест, которое следует за числом участников, и отсрочка после неудачного платежа (оплата).
  • Реалтайм и офлайн. Страницы видят изменения друг друга через WebSocket. Приложение открывается без сети, читает из IndexedDB и копит изменения заметок, пока сеть не вернётся (офлайн).
  • Админка на отдельном хосте: оператор находит человека, видит его сессии и группы, делает возврат платежа, пишет в блог и перезапускает упавшую задачу — и всё это попадает в журнал аудита.
  • Публичный сайт с серверным рендерингом: цены, юридические страницы, блог с RSS и рассылка с двойным подтверждением.
  • Девять языков, включая арабский справа налево, — в приложении, админке, на сайте и в письмах.

Это настоящий код, который можно открыть, и почти всё работает в живом демо с выдуманными людьми. Полный список — на странице возможностей.

Что значит «на веб-стандартах» на практике?

То, что труднее всего переносить, написано на стандартах, которые есть в любом современном рантайме и браузере:

  • API — это Hono: обработчик получает Request из Fetch и возвращает Response.
  • Хеши паролей и подписи курсоров пагинации — на Web Crypto.
  • Обновления в реальном времени идут по обычному WebSocket.
  • Всё — ES-модули.

Сегодня серверы работают на Deno 2 в Docker. 9 октября 2026 года команда Deno объявила ещё год ежемесячных выпусков с исправлениями и обновлениями безопасности, после чего собственная разработка Deno заканчивается. Поскольку большая часть Seed уже говорит на стандартах, запуск без изменений на Deno, Node и Bun — это работа по краям, а не переписывание. Это задача #623, пока без даты. Deno Deploy Seed никогда не использовал, так что его закрытие продукт на Seed не затрагивает.

Это фреймворк?

Нет, и это сделано нарочно. Seed — шаблон: вы создаёте из него свой репозиторий и меняете что угодно. Нет API плагинов, который надо учить, и нет обновления, которое тихо сломает ваш код. Части, полезные любому проекту, выходят маленькими пакетами @spy4x/* на JSR, а более поздние исправления самого Seed приходят в ваш продукт патчем, который вы просматриваете сами (как это устроено).

Кому подойдёт Seed?

Берите, если начинаете веб-продукт для нескольких пользователей (инструмент для команды, кабинет клиента, небольшое B2B-приложение) и хотите, чтобы вход, разделение клиентов, оплата и эксплуатация были решены до фичи, ради которой продукт и затевался. Он подходит разработчику-одиночке или небольшой команде, которым проще держать свой сервер, чем пачку ежемесячных подписок.

Не берите, если деплоите в serverless-функции, хотите, чтобы эксплуатацией занимался чужой готовый бэкенд, или пишете скрипт для одного пользователя. Seed запускает Postgres, Valkey и свои воркеры на сервере, за которым смотрите вы. В этом и обмен: больше контроля и ровный счёт, а обновления ставите вы сами.

Если сравниваете с другими стартерами, на странице сравнения есть два из них, с ценами и датой, когда я их проверял.

Сколько стоит Seed?

Нисколько. Лицензия MIT, без платной версии и без ключа. Платите вы только за сервер; я посчитал его до цента в посте От git clone до продакшена на одном сервере Hetzner.

Попробуйте

Быстрее всего — живое демо: нажмите «Попробовать без аккаунта» и пощёлкайте по заметкам команды. Когда захотите запустить у себя, после клонирования это две команды, и Как установить Seed и запустить его локально проведёт по ним. Код — на github.com/spy4x/seed; звезда там говорит мне, что продолжать стоит.

Следующий пост — на почту

Короткое письмо, когда выходит новый пост или что-то запускается. Подписка подтверждается один раз по почте, отписаться можно в один клик.

Все посты