Как всё начиналось

Недавно я заметил такую штуку: знакомые фрилансеры и маленькие студии разработки частенько теряют заказы, да и организовано у них всё так себе. Сообщения находятся то в одном сайте, то в другом, программисты в Discord сервере, заказчики и прогрев в Telegram, но при этом ещё надо в какую-то CRM заходить и там ещё что-то тыкать щёлкать. В общем - мест много, запутанно всё и не удобно.

Подумал: "А что если сделать CRM, которая работает ИЗ телеграма?" Клиент отправляет заказ боту, менеджеры видят в веб-интерфейсе, программисты предлагают цены, все получают уведомления. Всего два места, но при этом заказчику вообще не надо об этом думать, он в телеграмме, там где уже зарегистрирован. Красиво же?

И я начал.

Что получилось в итоге

Спустя какое-то время величие было готово:

  • Telegram-бот на aiogram 3x — клиенты создают заказы через диалог, получают уведомления на каждом этапе

  • Веб-админка на SvelteKit — Kanban-доска с drag-and-drop, управление командой, чат с клиентами

  • tRPC + Drizzle ORM — type-safety от базы до фронта, никаких any

  • Система ролей — 10 granular permissions (модерация, назначение, чат, отправка платёжек)

  • Конкурентная система откликов — программисты предлагают цены, менеджер выбирает лучшую

  • SSE для реалтайм-чата — сообщения из CRM летят в Telegram клиенту мгновенно

  • Dragonfly кещ — Быстрый, drop-in compatible

  • Docker Composedocker-compose up -d и всё работает

Сам если честно был в шоке. Стек неплохой, код чистый, архитектура — песня.

Конечно получилось не с первого раза, перед этим я страдал с фронтендом. Пробовал React 19, и наборы компонентов, но всё же остановился на SvelteKit и shadcn

Начались попытки продать

Попытка 1: Локальный рынок (студии разработки)

Написал в 5 студий. Ответили 3. Из них:

  • Одна: «У нас Битрикс24, всё настроено, переезжать дорого»

  • Вторая: «Мы сами программисты, напишем за выходные» (спойлер: не написали, но и не купили)

  • Третья: «А что если вы сделаете интеграцию с нашей 1С?» (я отказался, это было лишним)

Попытка 2: Freelance арбитраж тимы

Это те, кто берёт заказы на Upwork/Freelancer и перепродаёт команде разработчиков, забирая маржу. Им теоретически нужна система с конкурсными откликами программистов.

Нашёл несколько таких команд. Одна согласилась на демо. Показал. Их вопрос:

> "А у вас есть интеграция с Upwork API? Нам нужно автоматически импортировать заказы."

Естественно такой фичи у меня нет. Они не купили.

Попытка 3: Прямая продажа на форумах фрилансеров

Написал в чаты и форумы для фрилансеров. Получил:

  • «А можно self‑hosted?»

  • «А почему не Open Source?»

  • «А можно триал на месяц?»

  • «А вы не кинете нас через полгода, если закроетесь?»

И всё стало на свои места. Никто не хочет складывать свою клиентскую базу в CRM от ноунейма, который может исчезнуть.

Почему не продалось: разбор полётов

Я потратил месяц на анализ и вот к чему пришёл:

1. Целевая аудитория — худшие клиенты в мире

Программисты и студии — это те, кто:

  • Если маленькие — пользуются бесплатным Trello + чат в Telegram

  • Если чуть больше — думают «мы ж программисты, сделаем сами за выходные» (и делают годами или не делают во все)

  • Если большие — сидят на Jira/Битрикс24, и выходить оттуда — бюрократический ад

2. Доверие к no-name софту

CRM — это сердце бизнеса, где клиентская база и деньги. Никто не хочет лить своих клиентов в базу данных, написанную неизвестным разработчиком и работающую на неизвестном сервере. А если self-hosted, то лень деплоить Docker, если это не супер-популярный инструмент.

3. Конкуренция с «конструкторами»

Сейчас любую похожую логику собирают на AmoCRM + Kommo или Make (Integromat) + Telegram. Это костыльно, но это «стандарт».

4. Я не нашёл PMF (Product-Market Fit)

Я решал свою придуманную проблему. У реальной аудитории проблема была другая:

  • Нужна интеграция с Upwork/Freelancer/1C

  • Нужен биллинг и инвойсы

  • Нужен тайм-трекинг

  • Нужна возможность добавлять кастомные поля

А у меня был красивый Kanban и конкурентная система откликов, которые реально никому не нужны.

5. Я позиционировал неправильно

Я писал "CRM для программистов", но по факту это FMS (Freelance Management System) / Private Marketplace. Это система для арбитражных команд (которые собирают заказы и перепродают в пул фрилансеров, забирая маржу). Обычной веб-студии с зарплатными сотрудниками bidding не нужен. А для тех, кто перепродаёт заказы — это критично.

Но арбитражных команд мало, и они все хотят свой кастом.

Что я сделал дальше

Сидел неделю и выбирал из трёх вариантов:

1. Pivot — добавить интеграции с Upwork, биллинг, инвойсы, сделать платформу для freelance agencies

2. SaaS по подписке — продолжать пытаться продавать по $49/мес

3. Open Source — выложить код, конвертировать в репутацию

Почему выбрал Open Source

Считаем экономику:

  • Pivot: Время на разработку интеграций. Нет гарантии, что купят. Риск высокий.

  • SaaS: Поддерживать одному — ад (баги, падения сервера, техподдержка пользователей). Доход неясен.

  • Open Source: Единовременная работа почистить код и в путь, но:

  • Превращает мёртвый код в какой-никакой проект, который может кому-то и понадобится

  • Может привести мне заказчиков на кастомизацию, кто его знает, я чисто в теории могу в это добавить и импортиеры Upwork и чего только не под ключ так сказать

  • Отличное портфолио для Fullstack (SvelteKit + tRPC + Drizzle + Aiogram — очень актуальный стек)

План действий: как превратить неудачу в актив

1. Почистил код

2. Написал статью (эту)

3. Выложил на GitHub под лицензией MIT

https://github.com/DedInc/c0de_crm

Что я получу от этого?

Я уже получил двух клиентов из попытки №1 и №3, которые хотят «такое же, но с перламутровыми пуговицами». А что будет дальше, посмотрим.

Спасибо, что дочитали и желаю всем как можно меньше мертвых проектов!