Назад к проектам
В разработке SaaS

SyncFlow

SaaS-платформа для синхронизации товаров между маркетплейсами. Multi-tenancy, визуальный конфигуратор workflow, интеграции с Ozon и Wildberries.

TypeScriptPythonPostgreSQLSaaS

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

Текущее состояние

На данный момент реализовано:

  • Визуальный конфигуратор workflow — node-based редактор, где пользователь строит цепочку: источник данных, трансформации, целевая площадка. Написан на Next.js с кастомным движком на Canvas.
  • CRM — управление клиентами и контактами.
  • Управление заказами — обработка заказов с маркетплейсов в едином интерфейсе.
  • PIM — Product Information Management, единое хранилище карточек товаров.
  • Auth-сервис — регистрация, JWT, multi-tenancy на уровне базы данных.
  • API Gateway — маршрутизация запросов между фронтом и сервисами.

Архитектурные решения

Весь код живёт в одном монорепозитории — pnpm workspaces + Turborepo для оркестрации билдов. Фронтенд и бэкенд разделены, но деплоятся вместе: Next.js отвечает за интерфейс (визуальный редактор, дашборды, PIM), FastAPI — за бизнес-логику, коннекторы и выполнение workflow. Каждый сервис собирается в свой Docker-образ, CI на GitHub Actions пушит их в GHCR. Локально всё поднимается одним docker compose up — база, Redis, gateway, auth, фронт.

Multi-tenancy реализован через Row-Level Security в PostgreSQL — каждый тенант видит только свои данные без отдельных баз.

Roadmap

Коннекторы маркетплейсов

Ozon, Wildberries, Яндекс.Маркет — первые три площадки. Каждый коннектор умеет читать и писать: забирать заказы и остатки с площадки, отправлять обновлённые карточки и цены обратно. Коннектор — это плагин: стандартный интерфейс, под капотом — специфика конкретного API. Добавление нового маркетплейса не должно требовать изменений в ядре.

Движок выполнения workflow

Сердце системы. Берёт цепочку, собранную в визуальном редакторе, и выполняет её: запрос данных из источника, трансформация по заданным правилам, отправка в приёмник. Запуск по расписанию (cron) или по событию (вебхук от маркетплейса). Каждый шаг логируется — если что-то сломалось, видно где именно и на каких данных.

Marketplace-агностичный маппинг

Единая карточка товара внутри SyncFlow. Продавец заполняет её один раз, а система автоматически адаптирует под требования каждой площадки: названия полей, обязательные характеристики, форматы фото, ограничения по длине текста. Ozon хочет offer_id и rich-content в JSON. Wildberries — nmID и 11 обязательных характеристик для шин. Маппинг берёт это на себя.

Аналитика синхронизаций

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

Стек

Frontend

TypeScriptNext.js

Backend

PythonFastAPI

Data

PostgreSQLRedis

DevOps

Docker ComposeGitHub Actions

Таймлайн

2025-11

Начало разработки

Прототип лендинга и архитектура

2026-01

Визуальный конфигуратор workflow

Node-based editor для маршрутов синхронизации