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