Как перестать строить CRM с нуля и начать жить с Open Mercato

18 фев 2026
1,811
438
16
1 день

Знакомая ситуация: к вам приходит бизнес и просит «простенькую CRM», которая через месяц превращается в монстра с кастомными полями, сложной иерархией доступов и требованием «прикрутить туда ИИ, чтобы он сам счета выставлял»? Вы встаете перед классической дилеммой: купить готовое решение и мучиться с его ограничениями или писать свое с нуля, изобретая велосипед в виде системы ролей и миграций БД.

Проект Open Mercato предлагает третий путь. Разработчики называют это концепцией «Start with 80% done». Это open-source фреймворк для создания Enterprise-решений (CRM, ERP, бэкенды для коммерции), где база уже готова, а вам остается дописать те самые 20% уникальной бизнес-логики.

Open Mercato logo

Что такое Open Mercato и почему это не просто очередной шаблон

Если вкратце, это модульная платформа на стеке Next.js + TypeScript + MikroORM. Но дьявол, как всегда, в деталях. В отличие от многих «админок», которые просто визуализируют таблицы базы данных, Open Mercato — это полноценный фундамент для SaaS-приложений.

Главная фишка здесь в модульности. Каждая функция — будь то управление заказами, каталог товаров или работа с клиентами — живет в своем изолированном модуле. Вы можете выкинуть ненужное, добавить свое или даже «отпочковать» (eject) стандартный модуль, чтобы переписать его внутренности под себя, не теряя при этом обновлений остальной системы.

Реклама

Пять причин, почему этот проект заслуживает звезды на GitHub

1. Мультитенантность «из коробки»

Если вы когда-нибудь проектировали систему, где разные компании (тенанты) работают в одном приложении, вы знаете, какая это головная боль. В Open Mercato строгая изоляция данных на уровне организаций и тенантов заложена в архитектуру. Каждая сущность и каждый API-запрос по умолчанию учитывают контекст владельца данных.

2. Динамические сущности и формы

Бизнесу всегда мало стандартных полей. Сегодня им нужно «Имя контакта», а завтра — «Любимый цвет кота клиента». В Open Mercato можно объявлять новые поля, валидаторы и UI-виджеты прямо через админку или в коде модуля. Система сама подхватит изменения и обновит интерфейс.

3. ИИ-ассистент на стеке MCP

Это, пожалуй, самая трендовая фишка проекта. В платформу встроен ИИ-помощник, использующий Model Context Protocol (MCP). Что это дает? ИИ не просто «болтает», он понимает схему вашей базы данных и может выполнять API-вызовы. Вы можете спросить его: «Найди всех клиентов из Самары, которые не делали заказов месяц», и он реально выполнит поиск через ваши эндпоинты.

AI Assistant chat interface

4. Безопасность и шифрование данных

Для Enterprise-сегмента это критично. Проект поддерживает шифрование чувствительных данных (PII) на уровне полей. При этом используются детерминированные хеши, что позволяет делать поиск по зашифрованным полям (например, по email), не расшифровывая всю базу.

5. Гибкая система ролей (RBAC)

Забудьте про простые флаги is_admin. Здесь реализована полноценная система контроля доступа на основе фич и ролей. Можно тонко настроить, кто видит конкретную страницу, а кто имеет право нажать кнопку «Удалить» в конкретном модуле.

Взгляд под капот: архитектура и стек

Разработчики выбрали современный и надежный стек, который не заставит вас плеваться при чтении кода:

  • Frontend: Next.js (App Router), Tailwind CSS, Radix UI.
  • Backend: Node.js, Awilix для Dependency Injection (очень помогает при тестировании и подмене сервисов).
  • Database: PostgreSQL с MikroORM. Интересно, что миграции генерируются отдельно для каждого модуля.
  • Search: Meilisearch для быстрого полнотекстового и векторного поиска.

Архитектура построена вокруг папки src/modules/. Каждый модуль — это маленькое государство со своими API, страницами, переводами (i18n) и сущностями БД.

# Пример структуры модуля
src/modules/my-custom-feature/
  ├── api/          # Эндпоинты
  ├── components/   # UI-компоненты
  ├── entities/     # Описание таблиц БД
  ├── services/     # Бизнес-логика
  └── di.ts         # Регистрация в контейнере зависимостей

Как пощупать проект в деле

Самый быстрый способ — использовать Docker. Разработчики подготовили отличные конфиги для разработки с hot-reload.

git clone https://github.com/open-mercato/open-mercato.git
cd open-mercato
docker compose -f docker-compose.fullapp.dev.yml up --build

После запуска заходим на http://localhost:3000/backend, и перед нами готовая рабочая среда. Кстати, проект требует Node.js 24.x, так что убедитесь, что ваш nvm обновлен.

Для тех, кто хочет строить свой продукт на базе Open Mercato, есть CLI-утилита create-mercato-app. Она разворачивает чистый проект, который тянет ядро платформы как зависимости из npm. Это позволяет обновлять «движок», не ломая свой кастомный код.

Практические кейсы: кому это пригодится?

  1. Стартапам: Когда нужно собрать MVP сложной B2B-платформы за две недели, а не за три месяца.
  2. Аутсорс-командам: Чтобы не писать одну и ту же систему авторизации и управления пользователями для каждого нового клиента.
  3. Внутренней автоматизации: Если Excel уже не справляется, а готовые CRM слишком перегружены лишним функционалом.

Sales Pipeline

Итоги

Open Mercato выглядит как очень зрелая попытка создать «Django для мира TypeScript», но с гораздо большим уклоном в готовый UI и бизнес-фичи. Это не просто библиотека, а полноценный фреймворк, который диктует свои правила игры, но взамен дает невероятную скорость разработки.

Если вы устали от рутины и хотите сфокусироваться на уникальных фичах вашего продукта, а не на написании очередного контроллера для смены пароля — обязательно загляните в этот репозиторий.

Полезные ссылки:

Попробуйте развернуть проект и поделитесь в комментариях: как вам идея «спецификаций-первее-кода» (.ai/specs), которую активно продвигают авторы?

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.