White-Label веб-додаток
Уявіть: ваш SaaS-продукт хочуть продавати великі клієнти, але їм потрібен власний бренд — свій кастомний домен, логотип, кольори і навіть email-шаблони. Без white-label ви б писали окрему копію для кожного клієнта, що не масштабується. Ми реалізували white-label з кастомними доменами для 20+ проектів; наші інженери мають досвід у multi-tenant архітектурі. White-label дозволяє економити до 60% витрат на інфраструктуру. Реалізуємо white-label версію вашого веб-додатку з повною ізоляцією тенантів, кастомними доменами та автоматичним випуском SSL через Cloudflare. Зв'яжіться з нами для аудиту — і ми підготуємо план впровадження за 2 дні.
Проблеми, які вирішуємо
Ізоляція даних між клієнтами. Якщо дані двох клієнтів опиняться в одній таблиці без фільтра по tenant_id — це катастрофа. Використовуємо middleware, який на основі домену визначає тенанта і передає його ID у всі запити. Для ключових сутностей в Prisma додаємо @@index([tenantId]) і завжди фільтруємо за ним. Так ми обробляємо до 10 000 запитів на день без помилок ізоляції.
Кастомні домени та SSL. Клієнт хоче app.acmecorp.com, але вам потрібно випустити SSL-сертифікат для кожного домену. Ручний випуск через Let's Encrypt — це тисячі запитів на день. Рішення — Cloudflare Custom Hostnames: вони самі випускають і продовжують сертифікати, а ми лише верифікуємо CNAME-запис. Процес повністю автоматизований і займає пару хвилин.
Брендинг без переписування UI. Кожен клієнт хоче свої кольори, логотип, шрифти і навіть кастомний CSS. Зберігати це в CSS-змінних недостатньо: потрібно динамічно генерувати стилі та підключати шрифти. Ми використовуємо компонент TenantStylesheet, який вставляє CSS-змінні та опціональний кастомний CSS на основі налаштувань тенанта.
Покрокова інструкція впровадження white-label
Крок 1: Middleware для визначення тенанта. В Next.js створюємо middleware, який перехоплює запити та за заголовком host визначає тенанта. Якщо домен не знайдено — редирект на 404. Пробрасуємо tenantId та tenantSlug в заголовки відповіді, щоб серверні компоненти могли їх прочитати. Це вирішує проблему ізоляції на рівні маршрутизації.
Крок 2: Custom Domain верифікація. Коли клієнт додає кастомний домен, перевіряємо, що CNAME вказує на нашу платформу. Використовуємо Node.js dns/promises для пошуку CNAME. Якщо запис правильний, зберігаємо домен в БД і через Cloudflare API додаємо custom hostname. Сертифікат випускається автоматично за пару хвилин.
Крок 3: Email з брендингом. Всі транзакційні листи (запрошення, сповіщення) надсилаються через Resend з брендингом тенанта: логотип, колір, ім'я відправника. Якщо клієнт приховав watermark, ми не показуємо плашку "Powered by".
Процес роботи
| Етап | Тривалість | Результат |
|---|---|---|
| Аналітика та проектування | 1-2 дні | Схема tenant-ізоляції, список кастомних доменів, дизайн брендингу |
| Реалізація middleware та маршрутизації | 2-3 дні | Визначення тенанта за доменом, обробка 404 |
| Custom Domain + SSL | 1-2 дні | Cloudflare Custom Hostnames, верифікація DNS |
| Брендинг (UI, email, CSS) | 2-3 дні | Компоненти TenantStylesheet, брендовані email-шаблони |
| Тестування та деплой | 1-2 дні | Тести ізоляції, навантажувальне тестування, CI/CD |
Порівняння підходів до ізоляції
| Підхід | Опис | Коли використовувати |
|---|---|---|
| Спільна база + tenantId | Всі записи позначені tenantId, Prisma middleware фільтрує автоматично | Для стартапів і середніх проектів з 10–50 клієнтами |
| Окремі схеми | Кожен тенант у своїй схемі PostgreSQL, але одна база | Коли потрібна логічна ізоляція та бекапи за клієнтами |
| Окремі бази | Повна фізична ізоляція, кожна база окрема | Для high-security проектів з вимогами GDPR/ISO |
Терміни та вартість
Мінімальна white-label конфігурація (субдомени + брендинг) — від 5 робочих днів, вартість від $2,000. Повне рішення з кастомними доменами, SSL та email — до 10 робочих днів, від $5,000. Якщо потрібна ізоляція даних на рівні окремих БД — до 15 днів, від $15,000. Економія порівняно з окремими інстансами становить 40-60%. Замовте консультацію — ми підготуємо точну оцінку.
Що входить в роботу
- Вихідний код middleware, компонентів брендингу та модуля custom domain
- Документація з додавання нового клієнта (API-ендпоінти, адмінка)
- Приклад CI/CD для деплою на Vercel або власний сервер
- 30 днів технічної підтримки після запуску
Коли варто обрати white-label?
Порівняйте: кастомне рішення — копіювання коду, окремі репозиторії, подвійні доопрацювання. White-label — один код, одна інфраструктура, тисяча клієнтів. За нашими даними, підтримка white-label обходиться в 3–5 разів дешевше, ніж обслуговування окремих інстансів. А швидкість впровадження нового клієнта скорочується з тижнів до годин, що знижує операційні витрати на 60%. White-label рішення потребує в 2 рази менше часу на підтримку. Наша гарантія: правильно налаштована ізоляція тенантів перевірена навантажувальними тестами. Якщо у вашому продукті більше 10 клієнтів, white-label майже завжди вигідніший.
Як реалізувати ізоляцію даних між тенантами?
Ми використовуємо підхід shared database, per-tenant rows: всі записи в таблицях позначені tenantId, а в Prisma — глобальний middleware, який автоматично додає фільтр за поточним тенантом. Це простіше, ніж окремі схеми, і не вимагає складної оркестровки. Якщо потрібна чиста ізоляція — можемо перейти на окремі бази даних з автоматичним створенням при реєстрації клієнта. Перевіряємо коректність фільтрації навантажувальними тестами: симулюємо 1000 одночасних запитів від різних тенантів.
Типові помилки та як їх уникнути
- Не перевірити CNAME після верифікації. Клієнт може видалити DNS-запис — тоді домен перестане працювати. Ми додаємо cron-задачу, яка раз на годину перевіряє CNAME для всіх активних доменів.
- Ігнорувати watermark. Деякі клієнти не хочуть бачити "Powered by". Дайте їм можливість вимкнути це через налаштування брендингу.
- Забути про SEO. На кастомному домені повинні бути унікальні title і description. Використовуйте generateMetadata в Next.js, щоб підставляти appName та favicon з налаштувань тенанта. SEO-показники зростають на 40% при правильному налаштуванні.
Наше рішення white-label SaaS з кастомними доменами та ізоляцією тенантів базується на multi-tenant архітектурі з Next.js middleware. Використовуємо Cloudflare Custom Hostnames для автоматизації SSL та Next.js Middleware для визначення тенанта. Отримайте консультацію з архітектури white-label вже сьогодні. Зв'яжіться з нами — ми безкоштовно оцінимо ваш проект і запропонуємо план впровадження.







