Кейс 03 / 17 · CRM и таск-трекер для фрилансера и студии · 2026

CRM

Self-hosted гибрид Linear и CRM для разработчика на заказ: канбан задач, клиенты с историей касаний, деньги по этапам, счета и акты, коммерческие предложения с публичной ссылкой, кабинет клиента, учёт времени, автоматизации, Telegram-бот, GitHub, мониторинг сайтов и зашифрованное хранилище доступов. Несколько пространств с ролями, живые обновления по WebSocket — и всё в одном Node-процессе на SQLite.

  • Время разработки: 14 дней
  • Строк кода: 22 000+
  • Моделей в базе: 31
  • Модулей API: 22

Задача

Фрилансер и маленькая студия ведут проекты в трекере, клиентов — в таблице, деньги — в заметках, а пароли от серверов — в чате. Счёт на остаток забывается, лид остывает без ответа, непонятно, какой проект на самом деле приносит деньги, а клиент каждый день спрашивает «как там дела». Готовые CRM дорогие, тяжёлые и не знают ничего про коммиты, домены и токены ботов.

Решение

Один бэкенд на Express 5 и Prisma поверх SQLite с модульной структурой «роуты → сервисы → middleware»: JWT, проверка роли в пространстве (владелец, админ, редактор, наблюдатель) и zod-схемы на каждом входе. Карточка — центр всего: к ней привязаны клиент, этапы оплаты, расходы, время, счета, КП, мониторы, доступы, файлы и зависимости. Встроенный планировщик в том же процессе проверяет сайты, напоминает о сроках и оплатах, проводит регулярные платежи, запускает правила автоматизаций и шлёт утреннюю сводку в Telegram. Фронтенд на React 19, Tailwind 4 и motion со своими селектами и датапикерами, обновляется в реальном времени через WebSocket.

Ключевое

Канбан + CRM + финансы · Счета, акты и КП · Кабинет клиента · Telegram, GitHub, мониторинг

Что сделано

  • Канбан с перетаскиванием, список с массовыми действиями, календарь сроков, таймлайн-Гант с переносом полос и стрелками зависимостей
  • Карточки с номером #12, чек-листом, метками, приоритетом, ссылками на GitHub, Figma, сервер и домен, комментариями с упоминаниями и полной историей
  • Зависимости между задачами с защитой от циклов и бейджем «ждёт задачу» на доске
  • Клиенты: статусы от лида до бывшего, контактные лица, история звонков и встреч, напоминание «связаться», LTV, долг, средний чек и фактическая ставка
  • Деньги по этапам (30/40/30), платежи, расходы по проектам и регулярные платежи с напоминаниями и автозаписью
  • Счета и акты с нумерацией, реквизитами и суммой прописью — печатная форма A4 и PDF, акт по счёту в один клик
  • Коммерческие предложения с публичной ссылкой: клиент видит КП, принимает или отклоняет, карточка сама переходит дальше, а лид становится клиентом
  • Кабинет клиента по ссылке без пароля: прогресс проектов, этапы оплаты, счета, акты и сообщения команде
  • Таймер на карточке, отчёт по времени по людям, клиентам и проектам с себестоимостью и суммой к оплате, CSV для клиента
  • Экономика проекта: выручка − расходы − стоимость часов = прибыль и маржа
  • Аналитика: воронка с конверсией и днями в каждой колонке, прогноз выручки на полгода против цели, загрузка команды на неделю
  • Автоматизации «когда → сделать»: создание, перемещение, близкий или прошедший срок, остывший лид → уведомить, назначить, добавить чек-лист, выставить счёт на остаток, напомнить о клиенте
  • Шаблоны карточек с чек-листом, метками, бюджетом и разбивкой оплаты
  • Telegram-бот: уведомления, утренняя сводка, /tasks и /digest, пересланное сообщение становится карточкой или событием клиента
  • GitHub-вебхук с проверкой подписи: коммиты и PR с #номером попадают в историю карточки, смёрженный PR двигает её в колонку
  • Мониторинг сайтов и API клиентов: доступность, задержка, срок SSL и домена, уведомление о падении и восстановлении
  • Хранилище доступов на AES-256-GCM с видимостью по роли и записью каждого открытия в журнал
  • Несколько пространств с ролями, живые обновления и присутствие по WebSocket, сохранённые виды в сайдбаре
  • Палитра команд Ctrl+K, поиск по #номеру, горячие клавиши в стиле Linear
  • Импорт из CSV и Trello, JSON-бэкап, журнал действий и корзина на 30 дней с восстановлением

Этапы

  1. Бэкенд и права (7 день) — Express 5, Prisma и SQLite, JWT, роли в пространстве, стадии, карточки с перетаскиванием, подзадачи, история, сиды
  2. Интерфейс (4 день) — React 19, Tailwind 4 и motion, доска, список, календарь, карточка, свои селекты и датапикеры, палитра команд
  3. Клиенты (1 день) — Контакты, история касаний, напоминания, статистика клиента, деньги и время в карточке
  4. Финансы и документы (2 день) — Этапы оплаты, расходы, регулярные платежи, счета и акты, КП с публичной ссылкой, кабинет клиента
  5. Интеграции и планирование (1 день) — Telegram-бот, GitHub, мониторинг, хранилище доступов, автоматизации, аналитика, таймлайн, WebSocket, импорт и корзина

Следующий проект: Lumo