Мартовский Код
Продуктовый SaaS

MarchTracker — командный трекер задач для iOS, Android и веба

Планируй, спринтуй и выпускай — в одном быстром рабочем пространстве. Канбан-доски, спринты, календарь, встроенный учёт времени и real-time совместная работа: один код на Expo / React Native и бэкенд на NestJS.

Клиент: Мартовский Код — собственный продуктSaaSMobile
MarchTracker — командный трекер задач для iOS, Android и веба

3 платформы

из одной кодовой базы

6 ракурсов

одного проекта

Real-time

вся команда на одной доске

2 в 1

трекер + учёт времени

01

Задача

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

Нам нужен был рабочий инструмент для собственных проектов — и одновременно продукт-витрина: показать заказчикам вживую, как мы строим кроссплатформенные продукты. Требование к себе поставили жёстче клиентского: один код на три платформы, продакшен-уровень безопасности и real-time — без скидок на «это же внутренний инструмент».

02

Решение

Полноценное рабочее пространство, а не список дел

Задачи
Всё о задаче — в одной панели
  • Приоритет, статус, исполнитель и соисполнители, метки
  • Срок с напоминаниями, спринт, вложения
  • Подзадачи, чеклист с прогрессом, комментарии
Ракурсы
Один проект — шесть ракурсов
  • Доска, список, календарь, спринты, архив, активность
  • Мгновенное переключение, фильтры сохраняются
  • Спринты с целью, датами и бэклогом
Время
Учёт времени — встроенный
  • Начало/конец дня и перерывы в один тап
  • Личный месяц целиком — часы по дням
  • Командный отчёт для руководителя

Один TypeScript-стек сверху донизу

Единая кодовая база на Expo / React Native собирается под iOS, Android и веб — фичи выходят одновременно на всех платформах, а команда остаётся компактной. Сверху — типизированный API на NestJS со схемой Prisma: типы сквозные, от кнопки в интерфейсе до колонки в PostgreSQL. Совместная работа держится на аутентифицированных WebSocket-комнатах: доски, задачи и комментарии синхронизируются у всех участников в реальном времени.

Expo / React Native

Один код — iOS, Android и веб

NestJS + Prisma

Типизированный API и схема БД

Socket.IO

Real-time доски и уведомления

Docker + GitLab CI

Сборка и деплой без ручных шагов

03

Система изнутри

Реальные экраны работающей системы — не макеты. Нажмите, чтобы рассмотреть

Задачи и доска
Канбан-доска: свои колонки, WIP-лимиты, drag & drop и быстрое добавление задач
Всё о задаче в одной панели: приоритет, исполнители, метки, срок, спринт, подзадачи, чеклист и комментарии
Список с группировкой — те же задачи, другой ракурс; фильтры по приоритету, исполнителю и метке
Планирование
Календарь сроков: все дедлайны на сетке месяца, цвет — по приоритету
Спринты: цель и даты, бэклог рядом — задачи вытягиваются в спринт и отслеживаются до «готово»
Учёт времени
Личный месяц: начало и конец дня, перерывы, итоги по часам — без второго инструмента
Отчёт руководителя: часы всей команды по дням в одной таблице
Личный кабинет
Личная главная: открытые задачи, просроченные, недавняя активность и все воркспейсы
04

Результаты

3 платформы

из одной кодовой базы

iOS, Android и веб собираются из единого кода на Expo / React Native — фичи выходят одновременно на всех платформах

6 ракурсов

одного проекта

Доска, список, календарь, спринты, архив и лента активности — переключение мгновенно, фильтры сохраняются

Real-time

вся команда на одной доске

Аутентифицированные WebSocket-комнаты синхронизируют доски, задачи и комментарии у всех участников

2 в 1

трекер + учёт времени

Начало и конец дня, перерывы, личный месяц и командный отчёт по часам — без второго инструмента и его подписки

05

Подробный разбор

Инженерные заметки: сделано корректно и безопасно

Авторизация на уровне объектов
  • Каждый эндпоинт проверяет доступ на сервис-слое по членству в воркспейсе и проекте
  • RBAC на CASL: owner / admin / member
  • Доступ к чужим данным исключён архитектурно, а не «на фронте»
Транзакционная целостность
  • Перемещения карточек и переупорядочивание — внутри транзакций БД
  • Позиции не «плывут» даже при одновременных правках
Защищённый API
  • Rate-limiting на авторизации, security-заголовки по умолчанию
  • Refresh- и API-токены хранятся хэшированными
  • Валидация каждого запроса, подписанные ссылки на вложения
Готов к ИИ-агентам
  • Защищённый agent-API: автоматизации планируют и ведут задачи
  • Тот же RBAC — агент видит ровно то, что разрешено

Скриншоты сняты с живой сборки на демо-данных — воркспейс «Aurora Studio», проект «Skyline Mobile App».

Технологии проекта

Expo / React NativeTypeScriptexpo-routerReact QueryZustandNativeWindReanimatedNestJSPrismaPostgreSQLSocket.IOCASL (RBAC)JWTS3 / MinIODockerGitLab CI

Читайте также

Услуга

SaaS-разработка

Запускаем SaaS-продукты с подпиской: мультитенантная архитектура, биллинг Stripe и ЮKassa, product-аналитика. MVP за 4–8 недель от 650К — до того как закончится runway.

Услуга

Мобильные приложения

Создаём мобильные приложения для iOS и Android на React Native и Flutter. Один код — две платформы. От 200К, запуск в сторах за 4 недели.

Статья

Как создать SaaS-сервис: от идеи до подписок

Пошаговый гайд по созданию SaaS-сервиса: от валидации идеи до первых подписчиков. MVP от 500К, архитектура multi-tenant, метрики роста — для фаундеров и CTO.

Статья

Этапы разработки мобильного приложения: как всё устроено

Разбираем этапы разработки мобильного приложения по порядку: аналитика, дизайн, прототип, спринты, тестирование, публикация и поддержка. Сроки, результат, контроль.

Сравнение

Нативная vs кроссплатформенная разработка: что выбрать в 2026

Нативная разработка даёт максимум производительности, кросс-платформа экономит 30–40% бюджета. Когда выбрать Flutter, React Native, Kotlin или Swift.

Хотите похожий результат?

Расскажите о задаче — после 30-минутного созвона соберём кликабельный прототип решения (до 5 экранов). Бесплатно, до договора.