SaaS и ПО

Разработка SaaS для бизнеса в Дубае и ОАЭ

Мы создаём подписочное ПО, за использование которого платят другие компании: изоляция тенантов, роли, биллинг со счетами с НДС ОАЭ, онбординг, журналы аудита и операционные инструменты для работы продукта после запуска.

Для кого это

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

Основатель с подтверждённой проблемой
У вас есть доказательства, что компании готовы платить: пилотные клиенты, письма о намерениях или ручная услуга, которую вы уже продаёте. Вам нужно создать продукт и его платформенную основу в правильном порядке. Если доказательств меньше, начните с MVP.
Состоявшаяся софтверная компания
Вы продаёте однотенантный или коробочный продукт и хотите мультитенантную версию — или вам нужны инженерные ресурсы для тенантности, биллинга или корпоративных функций, которые ваша команда раньше не делала. Работа начинается с вашего существующего кода и модели данных.
Компания, превращающая внутренний инструмент в продукт
Ваша команда создала что-то для собственной работы, и теперь коллеги по рынку просят доступ. ПО работает для одной компании. Чтобы превратить его в продукт, нужно отделить ваши данные от данных будущих клиентов, убрать зашитые в код допущения и добавить самостоятельную регистрацию и биллинг.

Изоляция тенантов

Модель изоляции определяет стоимость хостинга, то, как вы обрабатываете запросы корпоративных клиентов, и насколько серьёзными могут быть последствия одной ошибки. Мы осознанно выбираем её в первую неделю.

Распространённые модели изоляции и их компромиссы
МодельКак это работаетПодходит дляНа что обратить внимание
Общая база данных, ключ тенанта в каждой строкеВсе тенанты используют общие таблицы. Каждый запрос ограничен ID тенанта — в идеале на уровне базы данных через защиту на уровне строк (row-level security).Большинства B2B-продуктов с множеством малых и средних клиентовОдин пропущенный фильтр может раскрыть данные, поэтому контроль должен быть ниже уровня кода приложения. Восстановление данных отдельного тенанта сложнее.
Отдельная схема для каждого тенантаОдна база данных, отдельная схема для каждого клиента.От десятков до нескольких сотен тенантов с умеренной кастомизациейМиграции выполняются для каждой схемы, поэтому время развёртывания растёт с числом клиентов.
Отдельная база данных для каждого тенантаУ каждого клиента своя база данных, иногда в своём регионе.Корпоративных и регулируемых клиентов, которым нужно физическое разделениеВыше стоимость хостинга и эксплуатации. С первого дня нужно автоматическое создание окружений.
ГибриднаяПо умолчанию общая база, для клиентов корпоративного тарифа — выделенные базы данных.Продуктов, которые продают и малому бизнесу, и крупным клиентамДве операционные модели, которые нужно тестировать и мониторить. Оправдано только при реальном спросе со стороны корпоративных клиентов.

Изоляция касается не только основной базы данных. Фоновые задачи, кэши, поисковые индексы, пути хранения файлов и выгрузки тоже должны учитывать контекст тенанта — именно там обычно и происходят утечки. В нашем руководстве по мультитенантности SaaS собраны вопросы, которые стоит задать любому техническому партнёру.

Роли, права и доступ

  • Модель аккаунтов с организациями, необязательными рабочими пространствами или командами внутри них и пользователями, которые могут состоять в нескольких организациях.
  • Ролевые права с небольшим набором ролей по умолчанию (владелец, администратор, участник, только чтение) и пользовательскими ролями, если их ожидают ваши клиенты.
  • Правила на уровне отдельных ресурсов там, где это нужно, — например, менеджер по продажам видит только своих клиентов.
  • Приглашения, передача владения и деактивация с сохранением истории аудита, когда пользователь уходит.
  • Единый вход (SSO) через SAML или OpenID Connect и SCIM-провижининг — обычно для более дорогого тарифа.
  • Доступ для поддержки, который клиент выдаёт на ограниченный срок; каждое действие записывается в журнал и помечается как выполненное сотрудником.

Подписочный биллинг и счета с НДС

Мы моделируем права доступа к функциям отдельно от названий тарифов: приложение проверяет, может ли аккаунт использовать функцию или сколько осталось квоты, а не на каком он тарифе. Благодаря этому изменение цен — это настройка, а не новый релиз кода. Мы также реализуем пробные периоды, пересчёт при смене тарифа, учёт мест или потребления, повторные попытки при неудачных платежах, льготные периоды и правило, что происходит с данными, когда подписка истекает.

Stripe Billing покрывает большую часть этого для компаний, которые могут открыть аккаунт Stripe. Некоторые клиенты в ОАЭ предпочитают или обязаны использовать региональный платёжный шлюз — например, Network International, Telr или PayTabs, — где поддержка токенизации карт и регулярных списаний зависит от провайдера и аккаунта. В этом случае логику подписок мы строим в приложении, а шлюз используем для списаний и возвратов. Доступность шлюза и комиссии подтверждаются для каждого проекта. Платёжные события приходят через вебхуки, поэтому обработчики идемпотентны, а ночная сверка сравнивает записи шлюза с учётом в приложении.

Для НДС ОАЭ счета выставляются как налоговые счета-фактуры с вашим налоговым регистрационным номером (TRN), суммой НДС в AED и другими реквизитами, которых требует Федеральная налоговая служба, а для возвратов формируются кредит-ноты. Как работать с клиентами за пределами ОАЭ, решает ваш налоговый консультант, и мы реализуем правила, которые он даст. В ОАЭ поэтапно вводится обязательное электронное выставление счетов, поэтому мы уточняем у вашего консультанта, касается ли оно вас на момент запуска, и храним данные счетов в структурированном виде, чтобы их можно было передавать в электронном виде, когда это потребуется. Если биллинг достаточно велик, чтобы быть отдельным проектом, смотрите разработку подписочного биллинга и наше руководство по требованиям к биллингу SaaS.

Онбординг и первая польза

У продукта с самообслуживанием онбординг решает одну задачу: довести новый аккаунт до первого полезного результата без звонка отдела продаж. Мы делаем регистрацию, подтверждение email, создание рабочего пространства и приглашение коллег, а затем пошаговый путь к этому первому результату — часто с демо-данными или импортом из таблицы. Каждый шаг отправляет событие в продуктовую аналитику, чтобы вы видели, где застревают пробные аккаунты. Двуязычный онбординг на английском и арабском, включая вёрстку справа налево и локализованные письма, закладывается в объём работ с самого начала. Проектирование взаимодействия может быть отдельным проектом по дизайну SaaS-продукта.

Журналы аудита и наблюдаемость

Журналы аудита
Неизменяемый журнал действий, важных с точки зрения безопасности и бизнеса: кто, что, с какой записью, в каком тенанте, когда и откуда сделал, со значениями до и после изменения. Администраторы клиента могут просматривать и выгружать историю своего тенанта. Корпоративные клиенты и их аудиторы будут это запрашивать.
Структурированное логирование
Каждая строка лога содержит идентификаторы тенанта, пользователя и запроса, поэтому обращение в поддержку можно проследить через веб-слой, фоновые задачи и вызовы сторонних сервисов.
Метрики и оповещения
Доля ошибок, задержки, глубина очередей, неудачные платежи и сбои вебхуков — с оповещениями, которые приходят конкретному человеку, а не в общий ящик.
Потребление по тенантам
Какие клиенты создают нагрузку и какими функциями пользуются — это основа для планирования мощностей, пересмотра цен и разговоров об оттоке.

Стек, развёртывание и передача

Мы выбираем распространённый стек, под который в ОАЭ можно нанять специалистов: обычно бэкенд на TypeScript или Python, PostgreSQL и фронтенд на React, с хостингом у крупного облачного провайдера. Развёртывание идёт через CI с раздельными тестовым и продакшен-окружениями. Миграции баз данных перед релизом проверяются на данных продакшен-объёма, а восстановление из резервных копий тестируется, а не предполагается. Если ваши клиенты или отрасль требуют хранить данные в ОАЭ, мы развёртываем систему в регионе внутри страны и документируем это для вашей политики конфиденциальности в соответствии с PDPL ОАЭ или правилами DIFC или ADGM, где они применимы.

Передача включает репозиторий, инфраструктуру как код, внутреннюю админ-панель для вашей службы поддержки, регламенты на случай инцидентов и для создания тенантов, а также документ с архитектурными решениями, описанными выше. В объём работ не входят контент маркетингового сайта, платное привлечение и юридическая подготовка ваших условий использования — здесь мы можем порекомендовать специалистов.

Что влияет на стоимость

  • Модель изоляции — особенно если выделенные базы данных нужны уже при запуске.
  • Сложность биллинга: фиксированные тарифы, оплата за места, учёт потребления или региональный шлюз без встроенных подписок.
  • Количество разных ролей пользователей и то, насколько детальными должны быть права.
  • Интеграции, которые клиенты ожидают с первого дня, — например, бухгалтерия, CRM или WhatsApp.
  • Поддержка арабского языка и письма справа налево в продукте, письмах и документах.
  • Корпоративные функции: SSO, выгрузка журнала аудита и гарантии размещения данных.

Наше руководство по стоимости разработки SaaS раскладывает эти факторы на отдельные статьи бюджета. Примеры наших работ — в кейсах.

Частые вопросы клиентов

Можно начать с однотенантной версии и добавить мультитенантность позже?

Можно, но внедрение тенантности задним числом затрагивает каждый запрос, задачу и путь к файлу — это одна из самых дорогих переделок в SaaS. По сравнению с этим добавить ключ тенанта и контроль доступа с первого релиза стоит недорого, даже если у вас пока один клиент.

Нам нужен Stripe или можно использовать шлюз из ОАЭ?

Подойдёт любой вариант. Stripe предлагает готовые функции подписок. Региональный шлюз может лучше подходить под ваши банковские отношения или клиентскую базу, но тогда больше логики подписок будет находиться в вашем приложении. Перед выбором мы сравниваем оба варианта с вашими планами.

Выдержит ли платформа анкеты по безопасности от корпоративных клиентов?

Она позволит честно на них ответить: модель изоляции, шифрование, контроль доступа, журналы аудита, резервное копирование и место хостинга. Формальные сертификации, такие как SOC 2 или ISO 27001, — это организационный процесс, который проходится отдельно.

Кто будет вести продукт после запуска?

Это согласуется до запуска. Варианты — постоянная инженерная поддержка с нашей стороны, передача вашей команде с переходным периодом или их сочетание. Объём, часы и время реакции фиксируются в договоре на сопровождение.

Давайте работать вместе

Готовы построить систему роста?

Отправьте короткое описание задачи или напишите нам в WhatsApp. Мы ответим уточняющими вопросами, предложим объём работ и следующий шаг.