Клиентский legacy
Мобильное приложение, веб, личный кабинет и их backend. Сохраняем клиентский опыт, mobile и web API, интеграции. Внутри — новая архитектура и данные.
Сохраняем клиентский опыт, API и интеграции. Внутреннюю архитектуру собираем заново. После запуска скорость изменений вырастает в 10–100 раз — без ETL-марафонов, без параллельных синхронизаций, без вечной модернизации
Обычно бизнес приходит к нам не с «плохим кодом», а с ощущением, что IT перестал успевать за бизнесом. Симптомы почти всегда одни и те же:
Мобильное приложение, веб, личный кабинет и их backend. Сохраняем клиентский опыт, mobile и web API, интеграции. Внутри — новая архитектура и данные.
Back-office, MES, CRM, WMS, HR-контур, dashboards, замены Camunda. Сохраняем рабочую логику и интеграционный периметр, убираем сложность, из-за которой любое изменение становится отдельным проектом.
E-commerce на 1С-Битрикс, imshop, самописных CMS. Заменяем сам движок, сохраняем связь с 1С, каталоги, данные и клиентский периметр. Обычно за 3 месяца.
Camunda, самописные BPMN-движки, микросервисные ландшафты, где пять сервисов делают то, что должен делать один. Убираем то, что стало карго-культом 2010-х.
Замена legacy для клиента и внешних систем должна выглядеть как «ничего не произошло». Приложение продолжает работать по тем же API, интеграции ходят по тем же контрактам, клиенты не обновляют приложение, партнёры не переписывают коннекторы.
Не переносим унаследованные проблемы
Проектируем модель данных заново и сокращаем число структур в 1,5 раза в небольших системах и до 5–10 раз в крупных.
Доказуемый parity вместо декларации
Перенос данных подтверждаем автотестами, решения по миграции фиксируем в manifest. Интеграции воспроизводим до байта, где позволяет контракт.
Управляемое AI-производство, а не автогенерация
AI пишет код внутри фреймворка Mini под контролем 100+ правил линтера. Архитектура, ревью и приёмка остаются за инженерами.
Кастомный код без vendor lock
Стандартный стек: Python / FastAPI / PostgreSQL, React + shadcn, Flutter. Все права на код — у заказчика, развивать может любая Python-команда.
Не переносим унаследованные проблемы
Проектируем модель данных заново и сокращаем число структур в 1,5 раза в небольших системах и до 5–10 раз в крупных.
Доказуемый parity вместо декларации
Перенос данных подтверждаем автотестами, решения по миграции фиксируем в manifest. Интеграции воспроизводим до байта, где позволяет контракт.
Управляемое AI-производство, а не автогенерация
AI пишет код внутри фреймворка Mini под контролем 100+ правил линтера. Архитектура, ревью и приёмка остаются за инженерами.
Кастомный код без vendor lock
Стандартный стек: Python / FastAPI / PostgreSQL, React + shadcn, Flutter. Все права на код — у заказчика, развивать может любая Python-команда.
Те же сценарии, те же API, те же интеграции. Аудитория не мигрирует, конверсии не проседают, продажи не останавливаются.
Новые фичи выходят не «через год после обещания», а за дни и недели. Годовой backlog старой системы часто закрываем за месяц уже в новом контуре.
Фиксируем scope, контракты, критерии приёмки — и подписываемся под сроком и бюджетом. Никаких аутстафф-моделей и оплаты за простой чужой команды.
Репозиторий, документация, артефакты — ваши. Фреймворк Mini передаём на неисключительных правах с исходниками: форкайте, меняйте, при желании замените.
Архитектурные правила заданы фреймворком и автоматически проверяются линтером. Правки идут дни вместо недель — и через год, и через три.
Развивать систему дальше можно с AI-агентами, а не только людьми. Данные аналитики уходят самому агенту — циклы гипотез сокращаются в разы.
Миграция — самое опасное место в замене legacy. Здесь ломаются проекты, теряется история, останавливаются продажи. Мы относимся к миграции как к отдельной инженерной дисциплине, а не как к «допишем ETL за неделю до релиза».
Manifest миграции. До первой строки кода описываем все источники (Postgres / MySQL / MSSQL / Oracle / SQLite / Mongo) и все решения по каждой сущности:
Каждое решение зафиксировано и обосновано — на приёмке нечему быть сюрпризом.
Reconcile-проверки. После запуска ETL автоматически проверяем:
Canonical coercion. Приводим значения к единой канонической форме: рубли и копейки, timezone, кодировки, форматы дат — там, где старые системы жили в разных.
Один запуск. ETL — не долгий процесс, синхронизирующий системы месяцами. Мы запускаем его один раз, когда переключаем контур. До этого новая система заполняется тестовыми снапшотами и прогонами.
Изучаем текущую архитектуру, mobile и web API, интеграции, сценарии и узкие места. Смотрим, что тормозит бизнес и что нельзя ломать.
Определяем, какие API и интеграции нужно сохранить like-for-like, а что можно и нужно переосмыслить. Утверждаем acceptance criteria по каждому сценарию.
Новая модель данных, новые границы сервисов (или их отсутствие — часто монолит подходит лучше). Пишем manifest миграции: что переносится, как, с какими проверками.
Типовые слои (CRUD, API, роли, права, формы, админка) генерируются автоматически. AI-агент пишет только кастомную бизнес-логику — внутри архитектурных рельсов и под контролем линтера.
Критичные внешние контракты повторяем один в один. Покрываем API-тестами, интеграционными тестами и e2e-тестами через Playwright.
Прогоняем ETL, запускаем reconcile-проверки, сверяем поведение старой и новой системы под нагрузкой. Переключаем контур в согласованном окне. Даём полгода гарантии.
Полгода гарантии уже в стоимости. Дальше — развитие и поддержка отдельным договором, обычно тоже fixed price, в том числе силами AI-агентов. Скорость изменений остаётся ×10–100 к привычной для legacy.
Системы, которыми ежедневно пользуются миллионы клиентов наших заказчиков.