Привет! Меня зовут Владимир и я создатель МояДоска. Сегодня я поделюсь историей о том почему я решил создать доску, как я ее написал... и переписал, а потом выпустил ее в свет, взял первое место на ProductRadar, набрал тысячи пользователей, и вошел в реестр Российского ПО, а потом...


Содержание, погнали!

  • Как все началось

  • Разработка: написал и переписал

  • Выход в свет

  • Что сейчас есть и что дальше?

  • Какие выводы я сделал

  • Благодарности

Как началось

15 августа 2024 года замечательная преподаватель английского языка Евгения с которой я много общался, и которая стала одной из первых (если не первой) пользователей МояДоска, рассказала мне про то что внезапно какое‑то (неизвестное мне) «Миро» уходит с Российского рынка.

А вот и окно возможностей! Ссылка на новость
А вот и окно возможностей! Ссылка на новость

Я посмотрел что это такое и пришел к умозаключению к которому приходит большинство людей впервые слышащие про онлайн‑доски: «Какая ерунда — можно ж на листочке писать». Однако мне очень красочно рассказали про то насколько доска miro значима (повторю: я на тот момент не знал что вообще такое онлайн‑доски) и как можно применять этот инструмент. Я сел изучать информацию и очень быстро понял что:

  • Онлайн‑доски это не про «просто порисовать», а действительно мощный командный и персональный инструмент

  • Это окно возможностей (рынок очистился и сделать замену Miro самое вермя)

  • Ниша мне интересна — я давно занимаюсь вебом и чем сложнее / новее задача — тем лучше

  • Я могу это сделать!

Разработка

Изначально я принял решение сделать все свое: движок, используя только обертки над браузерными API и написать с нуля серверную инфраструктуру. Я не стал использовать готовое open source — решение (многие просто берут опенсорсный Excalidraw и лепят сверху другой логтип), свой движок дает больше свободы и контроля над внутрянкой проекта: да, это дольше и сложнее, но в долгосрок явный выигрыш.

И вот я приступил:

Классика жанра
Классика жанра

А все как всегда казалось очень легко...

Фаза 1 (август-октябрь)

Изначальный стек был довольно смузи‑хипстерским: MERN (MongoDB, Expressjs, React, Node) + замечательная библиотека Konvajs как обертка над канвасом. В целом, объективно говоря, этого вполне хватало для небольших досок, но очень скоро я понял что если я хочу делать действительно большие и сложные доски, а также «играть в долгую», то смотреть надо в сторону WebGL/WebGPU (такая рекомендация даже есть в документации Konvajs). Также я принял решение отказаться от Mongo (это и их переход на SSPL который сразу не был взят в расчет, и разрастание документов больше 16мб размером у больших досок, а это лимит BSON у монги, да, вы можете очень резонно возразить что это решаемо, но уж тогда придется идти на определенные компромиссы и костыли в рамках моей архитектуры и структуры доски) в сторону перехода на PostgreSQL, который в итоге себя оправдал.

Ну и самое главное — это то что вопреки ряду оптимизаций доска реально тормозила после ~1000 элементов, в то время как многие пользователи собирают по 3–5–10 и более тысяч элементов, а WebGL действительно гораздо производительнее в том ключе которого требуют онлайн‑доски.

Стоит заметить что за это время уже был собран MVP (15 августа — 15 октября), который был обкатан на тесте и вполне хорошо работал при условии что доски невелики.

Фаза 2 (октябрь-январь)

Как писатель, скомкавший свои рукописи и бросивший их в урну, я переписал практически все: взял PixiJS как «обертку» над WebGL и для решения еще ряда задач, бэкенд был значительно переработан и заменена база данных на PostgreSQL, а также разработал свой протокол синхронизации — какой‑то условный полугибрид CRDT/OT, ну и много мене масштабных изменений.

Как итог: скорость значительно возросла, данные стали более структурированными, а архитектура проекта — чище.

В итоге за неполных 5 месяцев доска фактически была написана дважды. Итак, состоялся релиз...

Выход в свет

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

Куда податься с новым проектом? Разумеется на Product Radar! Во время моего участия произошла весьма эпичная и комедийная история, но я хочу отдать должное Диме Беговатому, Александру Шевцову и большей части охотников за то что они увидели истину в ситуации.

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

В итоге в «Продукте недели» на ProductRadar и занял там 1ое место, а в «Продукте месяца» забрал серебро

Аудитория сервиса постепенно растет органически поскольку спрос на доски весьма велик, а качественных альтернатив ушедшим сервисам еще не так много.


Что сейчас и что дальше дальше?

На выходе инструментарий был крайне базовый, но я постепенно его расширяю:

  • Работа с фото: обрезка с разными форматами масок

  • Воспроизведение аудио

  • Работа с PDF-файлами

  • Фигуры

  • Фреймы

  • Карандаш, ластик и полупрозрачный маркер

  • Соединительные стрелочки

  • Текст

И так далее. На подходе шаблоны, таблицы и многое другое.

Ну и конечно МояДоска прошла регистрацию в Реестре Российского ПО!

На момент написания статьи сервис функционирует бесплатно! — мне важно получить от вас обратную связь чтобы сделать сервис максимально комфортным и удобным!


Какие выводы я сделал

Я реализую уже далеко не первый IT‑проект, но наверное из того что я делал единолично, а не в команде — этот один из самых обширных, вещи которые я напишу ниже будут в духе «если лед и огонь встретятся — то будет вода», но эти прописные истины никогда не будет лишним услышать вновь:

  1. Я наткнулся на грабли о которых сам всегда знал, но находясь в позиции смотрящего со стороны всегда оценивать легче нежели чем когда лично прыгнул в «пучину морскую» — я работал быстро, но очень переоценил сложность продукта (ну классика жанра же!). Позади — вспаханное поле и впереди — еще два.

  2. Вопреки п.1 если все оценивать здраво и реалистично — вы никогда не возьметесь за сложный проект (тем более сами: весь код доски я написал один) ибо с точки зрения здравого смысла это нерационально. Но только так можно сделать что‑то стоящее!

  3. Знайте свою аудиторию: ключевое это общение с пользователями и необходимо делать это в большом объеме. Даже сейчас я призываю вас к обсуждению дабы сделать проект лучше.

  4. Трафик — новая нефть: необходимо собирать аудиторию еще ДО выхода сервиса — так будет больше обратной связи на старте, а у вас меньше соблазнов сделать ненужный функционал в время разработке, главное общаться с потенциальными пользователями (п. 3)

  5. Никакого «волшебства» тут нет — ежедневный труд.


Благодарности

  • Семье и близким за помощь и что терпят меня не выходящего год из подвала

  • Евгения — за то что рассказала о Миро и их уходе, что дало толчок к старту проекта

  • Никите — крутой дизайнер доски за то что вписался рисовать дизайн не за бесконечные бюджеты

  • Админам Телеграм‑каналов кто поддержали информационно

  • Пользователям что пользуются и мотивируют на развитие

  • Всем причастным!

Сайт доски: moyadoska.com

Телеграм-канал: @moyadoska

Почта для связи: admin@moyadoska.com

Телеграм для связи: @vladimirchtk

Комментарии (17)


  1. 2er6e1
    12.06.2025 11:40

    Выглядит здорово. Надо пробовать!


    1. moyadoska Автор
      12.06.2025 11:40

      Большое спасибо!) Буду рад обратной связи


  1. anonymous
    12.06.2025 11:40


  1. Vorchun
    12.06.2025 11:40

    Непривычная навигация:
    - скрол колесиком крутит документ, а не меняет масштаб
    - зажатое колесико перемещает объект, а не документ

    Вот тут мелковатый текст.

    А работает действительно быстро )

    Вы - молодец, поглядим повнимательнее на ваш продукт.


    1. moyadoska Автор
      12.06.2025 11:40

      Добрый день! Благодарю за обратную связь!

      - Про скролл соглашусь - думаю поменять поведение, сейчас надо зажать шифт для зума что не совсем очевидно.
      - Перемещаться можно как выбрав инструмент на панели, так и зажав правую кнопку мыши.

      Текст увеличу)


      1. Germanjon
        12.06.2025 11:40

        думаю поменять поведение
        и этим отпугнёте текущих пользователей, которые уже привыкли к такому управлению. Вынесите настройки поведения в отдельный конфиг. Для новых юзеров можно поставить по умолчанию новые значения.
        В целом - проекту удачи и развития. Автору - монетизации, чтобы не забрасывал проект.


        1. moyadoska Автор
          12.06.2025 11:40

          Спасибо!)


    1. zweipluse
      12.06.2025 11:40

      Когда что-то пишешь на доске и заканчивается место, то удобнее скоролом понемногу сдвигать и получать свободное место. А вот когда просматриваешь, особенно объемную доску, больше надо зумить, чтобы передвигаться к нужным частям доски. Так что вариант вынести поведение скорола в опции будет самое идеальное.


      1. moyadoska Автор
        12.06.2025 11:40

        Да, в точку! Я хочу при первом входе на доску сделать попал с имеющимися шорткатами и управлением + вынести в меню подсказку и дать возможность настраивать)


  1. Nexoic
    12.06.2025 11:40

    Интересный сервис мне понравился , для себя делал https://nexoic.com для сохранения заметок с е2е, за рекламу не пинайте, оригинальный проект.


    1. moyadoska Автор
      12.06.2025 11:40

      Спасибо!)


  1. Lagovi
    12.06.2025 11:40

    Подскажите, а почему нельзя понять сколько стоит сервис, по крайней мере, не регистрируясь?

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

    P.S. Не хватает сравнительной таблицы с miro.


    1. moyadoska Автор
      12.06.2025 11:40

      Здравствуйте! Сервис сейчас бесплатный для пользователей полностью - поэтому и нет информации об оплате)

      Сравнительную таблицу планирую сделать через несколько итераций (готовятся очень большие апдейты в июле)


  1. RostislavDugin
    12.06.2025 11:40

    Спасибо за статью!

    Подскажите, пожалуйста:

    1) Монетизации совсем-совсем нет? Если нет - какие планы по введению оплат (всё-таки сервера не бесплатные)?

    2) Планируете ли идти в open source, чтобы за счёт этого привлечь ещё разработчиков в проект?


    1. moyadoska Автор
      12.06.2025 11:40

      Спасибо и вам, добрый вечер!)

      1) Все верно, сейчас полностью бесплатен, затем подписка в рамках рыночной цены (но это будет позднее)

      2) Полностью нет, но вот планы на отдельные компоненты или решения есть)


  1. user0032
    12.06.2025 11:40

    Владимир, спасибо за статью!

    Я отправил личное сообщение (на Хабре) с описанием найденных дефектов.

    (также приложил ссылку с демонстрацией)


    1. moyadoska Автор
      12.06.2025 11:40

      Спасибо большое! Я как раз вам в этот момент там отвечал!)