Розробка SaaS-платформи
SaaS (Software as a Service) — модель доставки програмного забезпечення, при якій приложення працює в хмарі, а користувачі платять за доступ по підписці. Технічно це означає: мультитенантність, управління біллінгом, self-service онбординг, автоматичні оновлення та SLA.
Архітектурні рішення мультитенантності
Pool model (shared everything): усі тенанти в одній БД, ізольовані полем tenant_id. Мінуси: ризик утечки даних при помилці в запиті, складніше виконувати вимоги клієнтів по ізоляції.
Silo model (isolated): кожен тенант — окремна БД або екземпляр. Максимальна ізоляція, але дорого масштабувати до тисяч клієнтів.
Bridge model: спільна інфраструктура, але окремна PostgreSQL schema per tenant. Баланс між ізоляцією та вартістю.
Вибір залежить від ринку: enterprise-SaaS (банки, healthcare) вимагає silo, SMB-SaaS вигідніше тримати в pool model.
Біллінг і управління підписками
Самостійно реалізовувати біллінг — погана ідея. Стандартний вибір:
Stripe Billing: підписки, пробні періоди, usage-based billing, автоматичні невдалі платежі (dunning), промокоди, податки (Stripe Tax).
// Створення підписки
const subscription = await stripe.subscriptions.create({
customer: 'cus_xxx',
items: [{ price: 'price_pro_monthly' }],
trial_period_days: 14,
metadata: { tenant_id: 'tenant_123' }
});
Paddle: альтернатива з функцією Merchant of Record — Paddle берет на себе розрахунок та уплату НДС в різних країнах. Зручно для B2C SaaS, що виходить на міжнародний ринок.
Chargebee / Recurly: більш просунуті інструменти для складних pricing-моделей (seats, usage, flat + overage).
Pricing-моделі
| Модель | Опис | Приклади |
|---|---|---|
| Flat rate | Фіксована ціна за план | Basecamp |
| Per seat | Ціна × кількість користувачів | Notion, Figma |
| Usage-based | Платиш за потребу | AWS, Twilio |
| Tiered | Різні блоки за ціною | Mailchimp |
| Freemium | Базовий безплатний план | Slack, Zoom |
Hybrid-модель (базова підписка + overage за перевищення лімітів) — найпопулярніша для SaaS з змінним потребуванням.
Self-service онбординг
Після реєстрації користувач повинен почати отримувати ціність без участі продажника. Типовий onboarding:
- Реєстрація → створення workspace (тенанта)
- Verification email → підтвердження
- Wizard: налаштування профілю, перший об'єкт (проект/команда/документ)
- Feature discovery: tooltips, empty states з CTA
- Activation event: перша цільова дія, після якої користувач «активований»
Activation event визначається аналітикою: яка дія корелює з retention на 30-й день.
Feature Flags та плани
Функціональність розмежована по планах через feature flags:
// Laravel example
if ($tenant->plan->hasFeature('advanced_analytics')) {
// показуємо раздел аналітики
}
Флаги зберігаються в таблиці plan_features. Можна також використовувати LaunchDarkly або Unleash для A/B-тестів та gradual rollout.
Метрики SaaS
Ключові метрики для моніторингу:
- MRR / ARR — щомісячний/щорічний регулярний доход
- Churn rate — відсоток клієнтів, що скасували підписку
- LTV / CAC ratio — співвідношення життєвої цінності до вартості привлечення
- NPS — Net Promoter Score
- Time to value — час від реєстрації до activation event
Технічний стек
| Компонент | Технологї |
|---|---|
| Backend | Laravel (PHP), Django (Python), Nest.js (Node.js) |
| Frontend | Next.js, Nuxt.js |
| БД | PostgreSQL з RLS / schema-per-tenant |
| Біллінг | Stripe Billing, Paddle |
| Feature flags | LaunchDarkly, Unleash, самописний |
| Аналітика продукту | Mixpanel, Amplitude, PostHog |
| Очереди | Redis + Sidekiq/Horizon/BullMQ |
| Інфраструктура | AWS / GCP + Terraform |
Сроки
MVP SaaS (auth, мультитенантність, один core feature, підписки через Stripe, self-service onboarding): 3–5 місяців. Повнофункціональна платформа з usage-based billing, командами, розширеною аналітикою, API для інтеграцій: 6–12 місяців.







