Від 0 до 500 DAU без маркетингу: 4 місяці розвитку браузерного 2D CAD

💡 Усі статті, обговорення, новини про Front-end — в одному місці. Приєднуйтесь до Front-end спільноти!

Привіт, DOU!

Мене звати Володимир, я Java Engineer з понад 12 роками досвіду в кодингу та розробці розподілених систем. Паралельно з основною роботою я вже понад три роки розвиваю власний пет-проект — KulmanLab. Це безкоштовний браузерний, offline-first 2D CAD-редактор для створення креслень, побудований на Angular, TypeScript та HTML5 Canvas.

У квітні 2026 року на DOU вже виходила моя перша стаття про запуск KulmanLab, де я ділився самою ідеєю та технічною архітектурою рішення. З того часу пройшло вже достатньо часу, проєкт обріс новим функціоналом, користувачами, а я — певним досвідом яким хочу поділитися.

Цього разу я хочу чесно та без прикрас розповісти, що відбулося з проєктом за цей період: успіхами, фейлами, рефакторингом, монетизацією та реальними метриками.

Цей матеріал буде особливо корисним розробникам, які мріють викотити свій продукт з пет-проєкту в продакшн, засновникам мікро-saas та всім, кого цікавить розробка складних веб-інтерфейсів без важких серверних обчислень.

Про продукт: технічний стек та головна ідея

За своєю суттю KulmanLab — це повністю статичний Single Page Application (SPA). Найіронічніше тут те, що за понад 12 років у розробці моєю головною експертизою є саме бекенд на Java (Spring, мікросервіси, бази даних). Проте для KulmanLab я свідомо обрав архітектурний підхід Client-Side Only / Serverless. Я добре знаю скільки зусиль і підтримки вимагає будь яке серверне рішення.

Всі обчислення, побудова геометрії 2D-векторів, рендеринг та робота зі станом здійснюються виключно в браузері користувача на HTML5 Canvas із використанням IndexedDB для локального збереження даних.

Головні фішки продукту:

  • Не потрібно проходити реєстрацію, створювати акаунт, вводити пошту чи додавати картку. Відсутні пейволи чи обмеження «trial на 14 днів».
  • Оскільки бекенд відсутній, додаток залишається повністю робочим навіть без підключення до мережі Інтернет.
  • підтримка експорту/імпорту форматів, прийнятих в інженерії та CAD-світі (зокрема DXF).

Найкращий спосіб зрозуміти, як це працює — перейти на kulmanlab.com, запустити Web App та спробувати створити своє перше креслення безпосередньо у браузері. А для тих, хто хоче зекономити час і швидко оцінити інтерфейс та можливості — нижче коротке демо:

З моменту релізу першої версії проєкту пройшло близько чотирьох місяців. Початково мій план був доволі прагматичним: «Зроблю базовий функціонал, а коли набридне — просто залишу проєкт у робочому стані». Проте на практиці все виявилося зовсім інакше.

Що більше розвивається проєкт, то більшим стає беклог. Розробка кожної нової команди чи інструменту відкриває десятки нюансів: десь бракує зручнішої прив’язки (snapping), десь треба гнучкіше налаштування параметрів, а десь — оптимізація продуктивності рендерингу Canvas. Сьогодні мій беклог та список ідей довший, ніж був коли-небуть.

Звісно, без claude code не обійтися. Використання AI, ймовірно, прискорило розробку в 10 разів. Хоча, заради справедливості, більшість моєї розробки виглядає як постійне читання коду, виправлення, правки, ролбеки і тд.

За цей час вдалося реалізувати цілий пласт важливих CAD-інструментів:

  • Повноцінний текстовий редактор (MTEXT/TEXT): реалізація парсингу та рендерингу форматизованого тексту безпосередньо на Canvas.
  • Штрихування (Hatch): генерація та заливка замкнених контурів складними векторними паттернами.
  • Розмірні лінії (Dimensions): автоматичний розрахунок і динамічний рендеринг лінійних, кутових та радіальних розмірів.
  • Layouts & Paper Space: можливість налаштування аркушів для друку, масштабування видів та підготовки креслень до вигрузки.
  • Глибока переробка UI/UX: головна мета тут — зберегти інтерфейс максимально легким, чутливим та не перевантаженим (на відміну від класичних «важких» десктопних CAD-систем).

Завдяки цьому проєкт поступово перетворюється з простої малювалки ліній на справді функціональний інструмент для швидкого 2D-проектування та креслення.

Користувачі та статистика: реальні цифри без прикрас

Перші користувачі почали приходити на KulmanLab на початку травня, проте більш помітний та стабільний ріст розпочався вже влітку.

Ось основна статистика з Google Analytics за останній місяць:

  • Загальний трафік за останні 30 днів: понад 7 000 унікальних користувачів.
  • Денний пік (DAU): на сьогодні рекордна кількість становить 520 користувачів за добу.
  • Середній час сесії: 13–15 хвилин. Це показник, яким я дійсно пишаюся, адже для веб-інструменту це свідчить про реальне залучення: звісно, хтось закриває вкладку за 3 секунди, зрозумівши, що це не те, що шукав, але багато хто залишається креслити на годину і більше.
  • Ріст активності: з кожним тижнем стабільно зростає кількість активованих інструментів та команд за одну сесію (див. графік нижче). Це означає, що люди не просто «клацають» по Canvas, а використовують глибокий функціонал (розміри, штриховки, текстові блоки).

Чи задоволений я таким трафіком?

Відповідь двояка: і так, і ні.

З одного боку, якщо дивитися на цифри крізь призму класичних продуктів чи SaaS-стартапів, 7 тисяч юзерів на місяць — це зовсім трохи.

З іншого боку, весь цей трафік на 100% органічний. Я не витрачаю бюджетів на платний маркетинг, про проєкт ще не знімали відео популярні YouTube-блогери, а кількість публікацій у медіа обмежена лише моїми власними постами.

Найбільше надихає сам тренд: постійне графічне зростання та фіксування реальних цільових користувачів. Разом із ростом відвідуваності я почав регулярно отримувати зворотний зв’язок — листи з багрепортами, подяками та фіча реквестами. Для мене це найкраща мотивація, щоб рухатися далі.

Розподіл по країнах:

Розподіл по браузерах:

Розподіл по OS:

Що я пробував для просування (і що з цього вийшло)

У травні та червні я вирішив активніше зайнятися маркетингом та протестувати різні канали залучення трафіку. Для соло-розробника без маркетингового бюджету це завжди серія експериментів. Ось мій чесний зріз по кожному каналу:

Що НЕ спрацювало або дало слабкий ефект:

  • Тематичні інженерні та CNC-форуми, студентські майданчики: Здавалося чудовою ідеєю, але на практиці канал виявився майже мертвим. Більшість форумів збирають до десятка переглядів на місяць. А ті поодинокі, де є жива аудиторія, моментально банять за будь-яку спробу розповісти про свій інструмент, тавруючи це як спам.
  • Product Hunt: Повний нуль ефекту. Проєкт був «не зафічерений» (unfeatured), через що не вдалося отримати навіть індексованого зворотного посилання для SEO.
  • Reddit (r/kulmanlab та AMA): Я створив власну спільноту r/kulmanlab, де регулярно публікую оновлення та чейнджлоги. Проте крос-постинг у суміжні сабредіти — це ходіння по мінному полю: дуже легко отримати бан за самопросування. Формат AMA (Ask Me Anything) на старті дав непоганий сплеск, але швидко заглох через жорстку модерацію.
  • Threads, Facebook, X (Twitter): Вимагають величезної кількості часу та контенту, а віддача для інженерного B2C/B2B інструменту поки мінімальна.
  • Прямий пітчинг блогерам та авторам оглядів: Писати авторам порівняльних статей чи оглядачам CAD-софту «в холодну» виявилося марною тратою часу — конверсія в реакцію майже нульова.
  • Студентські Discord-сервери: Повний фейл, нульовий інтерес.
  • DOU (попередня стаття): Дала гарний, помітний сплеск українського трафіку та крутий фідбек від колег. Проте в довгостроковій перспективі це локальна історія, адже цільова аудиторія інструменту — весь світ.

Що насправді спрацювало:

  • Реструктуризація та SEO-лендінг (Головний буст): Спочатку сам додаток знаходився безпосередньо на kulmanlab.com. Пізніше я вирішив їх розділити: переніс web app на сабдомен app.kulmanlab.com, а на головному домені зробив легку, оптимізовану лендінг-сторінку. Це суттєво покращило швидкість завантаження додатка і дало потужний поштовх для SEO.
  • Локалізація лендінгу на 30 мов: Це дало несподівано потужний ефект на окремих ринках. Наприклад, Японія практично одразу вирвалася в лідери за кількістю активних користувачів!
  • Bing Search: Як не дивно, пошуковик від Microsoft приносить трафік на рівні з Google. Очевидно, корпоративний та інженерний сегменти частіше використовують дефолтний Edge/Bing на робочих ПК.
  • Dev.to, Medium, GitHub repository links: Ці майданчики майже не дають прямих переходів користувачів, але створюють якісні, індексовані лінки, що зміцнює авторитет сайту в очах пошукових систем.

Плани щодо монетизації: чому саме реклама і з якими труднощами я зіштовхнувся

Зважаючи на стабільне зростання органічного трафіку, у мене з’явився обережний оптимізм щодо потенціалу монетизації проєкту. Проаналізувавши різні варіанти, я сформував чітке бачення:

  • Freemium — це зло: Я свідомо відмовляюся ховати базові CAD-інструменти під пейвол або обмежувати користувачів у збереженні файлів.
  • Підписки та донати — нереалістично: я просто не вірю в такий підхід.

Тому єдиним життєздатним шляхом виглядає дисплейна реклама. Я планую додати акуратний рекламний банер, який буде максимально чесно і чітко відокремлений від робочої області (Canvas) та всього функціоналу, щоб не заважати процесу креслення. На практиці інтеграція реклами виявилася значно складнішим завданням, ніж здавалося на перший погляд, адже раніше я не мав досвіду роботи з Ad-tech інструментами.

Спробувавши підключити Google AdSense, я зіштовхнувся з кількома фундаментальними проблемами:

  1. AdSense заточений під блоги та новинні сайти: Більшість стандартних рекламних мереж розраховані на сторінки з коротким часом перебування (1–2 хвилини) та частим переходом між сторінками.
  2. Проблема тривалих сесій: У KulmanLab середня сесія триває 13–15 хвилин, а хтось працює й по кілька годин на одній сторінці без її перезавантаження. Показувати один і той самий банер протягом 30 хвилин — абсолютно неефективно для рекламодавця і безглуздо з точки зору дохідності.
  3. Жорсткі правила Auto-Refresh: Просте оновлення рекламного блоку за таймером (скриптом на клієнті) суворо заборонене правилами Google AdSense і загрожує миттєвим баном акаунта.
  4. Поріг входження для складніших систем: Більш гнучкі інструменти на кшталт Google Ad Manager / AdX або більшість преміальних альтернативних мереж (які дозволяють гнучке управління показами та мають вищий eCPM) вимагають мінімального трафіку від 1 млн переглядів сторінок на місяць, до чого мені ще далеко.

Таким чином зараз монетизація на паузі.

Проблеми та виклики: від технічних обмежень до продуктової невизначеності

Розвиток інженерного продукту наодинці — це постійний пошук компромісів між технічним боргом, маркетингом та правильним пріоритетом фіч. За останні місяці вималювалося декілька головних блоків проблем:

1. Технічний борг та DXF-формат. Нюанси специфікації DXF (про які я детально писав у попередній статті) нікуди не зникли. DXF має величезну кількість специфічних сутностей та нетривіальну структуру. На певному етапі я прийняв свідоме інженерне рішення: тимчасово заморозити підтримку рідкісних об’єктів для експорту в DXF, зосередившись на стабільності базової геометрії, та повернутися до цього пізніше.

2. Регресійне тестування . Функціоналу стає все більше: нові типи ліній, розміри, прив’язки, штрихування, текстові блоки. Масштабування системи перетворило регресійне тестування на справжнього пожирача часу. Перевірити, чи не зламала нова команда штрихування існуючий механізм Undo/Redo або експорт у вектор, вимагає дедалі більше зусиль.

3. Нескінченне поле для SEO та маркетингу. Зараз абсолютно очевидно: обсяг роботи у сфері просування заслуговує на окремий повноцінний 8-годинний робочий день. Написання блогів, ведення соцмереж, зйомка відеооглядів, глибока SEO-оптимізація, актуалізація документації на 30 мовах — це величезний пласт, який важко закривати наодинці в режимі «після основної роботи».

4. Найбільш неочевидний виклик: Продуктові рішення та пріоритети. Зрештою, саме продуктові питання стали для мене найважчою головоломкою, яка зараз забирає щонайменше 20% всього часу роздумів:

  • Відсутність глибокої продуктової аналітики: Без детального трекінгу подій важко об’єктивно оцінити, чим саме користуються люди, а що залишається непоміченим.
  • Хибні припущення щодо потреб: На початку мені здавалося, що можливість завантаження кастомних web-шрифтів — це Must-Have фіча. Так було коли я навчався в університеті: виключно ГОСТ шрифти допускалися до розгляду і перевірки. На практиці виявилося, що вона майже нікого не хвилює. Натомість векторне штрихування (Hatch) викликало величезний інтерес та запит від аудиторії.
  • Оцінка фідбеку та Feature Requests: Коли користувач пише з проханням додати конкретну команду, завжди важко визначити: це унікальний Edge Case однієї людини чи реальний запит сотень інших silent-користувачів?
  • Аналіз конкурентів та підготовка UX: Перед імплементацією будь-якого інструменту я годинами досліджую, як це реалізовано в класичних CAD-системах (AutoCAD, LibreCAD, QCAD, FreeCAD тощо). Головна мета — зробити поведінку інструменту звичною для інженерів, але при цьому не ускладнити код і не створити пасток для архітектури в майбутньому.

Замість висновку

Розвиток KulmanLab — це захопливий інженерний та продукт-менеджерський експеримент. Створення складного графічного редактора в браузері виявилося не лише чудовим способом вийти за межі звичного бекенду, а й глибоким зануренням у продуктове мислення, Ad-Tech та SEO.

Попри відсутність маркетингових бюджетів, постійне зростання органічного трафіку доводить: безкоштовний, легкий та доступний 2D CAD прямо у браузері має свій попит у світі.

Якщо вам цікаво протестувати інструмент, дати фідбек або просто покрутити 2D-вектори на Canvas — заходьте на kulmanlab.com. Буду щиро вдячний за ваші коментарі, критику та ідеї нижче під статтею!

👍ПодобаєтьсяСподобалось8
До обраногоВ обраному2
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

У мене на сайті 9 мов (теж онлайн-інструмент), і майже весь трафік з Китаю, В’єтнаму та Гонконгу — боти. Є доволі просунуті — у них реальні кліки, не йдуть одразу, з часом можуть міняти патерни поведінки, на вигляд схожі на людей, але ні. В перший рік, коли трафік був зовсім невеликий, ботів (в основному з Китаю) в гугл-аналітиці часто було кратно більше, ніш реальних юзерів. Фільтри гугл-аналітики не завжди допомагають, краще дивитись на гугл та бінг консоль, скільки переглядів та кліків. Там більш реальна картина.

Я помічав в травні-червні різкі стрибки юзерів з Китаю які були дуже схожі на ботів. Також ймовірно хтось з китаю пробував (можливо успішно) клонувати сам аплікейшн (я бачив у ВЛАСНІЙ гугл аналітиці команди з китайськими назвами) — ймовірно намагались перекласти інтерфейс але забули GA id забрати. Але от чого я не розумію — в чому сенс цих ботів?

Не знаю в чому сенс ботів. Були думки, може LLM-ки якось тренують?
А, ще забув — в цьому році було нашестя ботів з Сінгапуру в березні протягом двох-трьох тижнів. Відвідуваність лише через гугл-консоль дивився, гугл-аналітика була повністю забита — трафік ботів був в рази вище кількості реальних людей. При цьому в гугл- та бінг-консолях ніяких спайків не було.

Класний результат, успіху в подальшому!

Підписатись на коментарі