Проблема
SMM-агентство ведёт аккаунты многих клиентов одновременно: контент нужно планировать, согласования собирать, а календари не должны пересекаться. Таблицы и групповые чаты работают до третьего клиента, а потом каждое согласование оказывается в другом месте, и никто не знает, что выходит завтра.
Что я разработал
Платформу рабочих пространств для агентств, мультитенантную с самого начала: каждое агентство регистрируется и получает собственное изолированное пространство со своими клиентами, своей командой и своими данными. Планирование контента, процессы согласования и общий календарь собраны в одном месте, а роли определяют, кто может публиковать, а кто только предлагать.
Технологии
Next.js на VPS, который используется совместно с другими сервисами, с аутентификацией и изоляцией тенантов, заложенными в архитектуру, а не добавленными потом. Релизы выходят поэтапно, а всё, что затрагивает конфигурацию веб-сервера, проверяется до выкладки, потому что на той же машине работают другие сайты.
Почему именно так
Платформа с первого дня проектировалась для многих агентств, хотя начиналась с одного. Встроить мультитенантность в приложение для одного клиента задним числом означает переписать каждый запрос, читающий данные, и надеяться, что ни один не пропущен, — такая переделка обходится дороже, чем исходная разработка.


