The post has been translated automatically. Original language: Russian
Hello everyone When developing our ERP system for creative agencies, we faced the classic problem of any fintech or management software.: how to ensure instant interface response while maintaining the reinforced concrete reliability of relational data in P&L and Cashflow calculations.
Today I want to share the experience of our team and tell you why we decided on a bundle of React 18 and Supabase (PostgreSQL), and how it helps us in development. Perhaps our experience will save time for other startups at the stack selection stage.
1. No NoSQL for money — only PostgreSQL When it comes to management accounting, calculating salaries with KPIs, transactions and double counting (accrual method vs cash method), NoSQL databases turn into a nightmare. We needed strict typing, complex JOINS, and transactionality. Postgres, under the hood of Supabase, has covered these needs by 100%. We use more than 80 normalized tables, and the relational model ensures that not a single penny is lost when generating historical snapshots of closed periods.
2. Bringing heavy business logic to Edge Functions (Deno) Calculating a complex unit economy, parsing bank statements, and managing a role model (RBAC) on a client is a bad idea. We actively use Edge Functions. This allows us to isolate heavy computing from the front-end, work safely with external APIs (for example, integration with LLM for our AI agents), and accelerate system response.
3. Interactivity with React 18 Users are used to the speed. Managers need to drag and drop cards in the Kanban, quickly collect estimates and see the recalculation of margins in real time. React 18 does an excellent job of rendering complex dashboards and tables without performance drawdowns, and the ecosystem makes it easy to generate PDF and DOCX documents on the fly.
4. Data Isolation (Multitenancy) For a B2B product, it is critically important that the data of one agency never overlap with the data of another. Using the capabilities of Postgres (Row Level Security in conjunction with Supbase) allowed us to implement a reliable multi-tenant architecture without having to raise separate databases for each client.
Choosing a stack is always a compromise, but so far this architecture has shown itself to be as resilient to scaling as possible.
Colleagues, which backend stack (BaaS or custom development) do you prefer to use for your SaaS products and why? Share it in the comments!
Всем привет! Разрабатывая нашу ERP-систему для креативных агентств, мы столкнулись с классической проблемой любого финтеха или управленческого софта: как обеспечить мгновенный отклик интерфейса, сохранив при этом железобетонную надежность реляционных данных при расчетах P&L и Cashflow.
Сегодня хочу поделиться опытом нашей команды и рассказать, почему мы остановились на связке React 18 и Supabase (PostgreSQL), и как это помогает нам в разработке. Возможно, наш опыт сэкономит время другим стартапам на этапе выбора стека.
1. Никакого NoSQL для денег — только PostgreSQL Когда речь заходит об управленческом учете, расчете зарплат с KPI, сделках и двойном учете (метод начисления vs кассовый метод), NoSQL базы данных превращаются в кошмар. Нам нужна была строгая типизация, сложные JOIN-ы и транзакционность. Postgres под капотом Supabase закрыл эти потребности на 100%. Мы используем более 80 нормализованных таблиц, и реляционная модель гарантирует, что ни одна копейка не потеряется при генерации исторических слепков (Snapshots) закрытых периодов.
2. Вынос тяжелой бизнес-логики в Edge Functions (Deno) Считать сложную юнит-экономику, парсить банковские выписки и управлять ролевой моделью (RBAC) на клиенте — плохая идея. Мы активно используем Edge Functions. Это позволяет нам изолировать тяжелые вычисления от фронтенда, безопасно работать с внешними API (например, интеграция с LLM для наших AI-агентов) и ускорять отклик системы.
3. Интерактивность с React 18 Пользователи привыкли к скорости. Менеджерам нужно перетаскивать карточки в Канбане, быстро собирать сметы и видеть пересчет маржинальности в реальном времени. React 18 отлично справляется с рендерингом сложных дашбордов и таблиц без просадок по производительности, а экосистема позволяет легко генерировать PDF и DOCX документы прямо на лету.
4. Изоляция данных (Мультитенантность) Для B2B-продукта критически важно, чтобы данные одного агентства никогда не пересеклись с данными другого. Использование возможностей Postgres (Row Level Security в связке с Supabase) позволило нам реализовать надежную мультитенантную архитектуру без необходимости поднимать отдельные базы для каждого клиента.
Выбор стека — это всегда компромисс, но пока эта архитектура показывает себя максимально устойчивой к масштабированию.
Коллеги, а какой бэкенд-стек (BaaS или кастомная разработка) предпочитаете использовать вы для своих SaaS-продуктов и почему? Делитесь в комментариях!