Раньше я следил за БелАЗами. Теперь слежу за велосипедистами
В конце 2024-го я поехал на свою первую МТБ-гонку. Был уверен, что проеду легко: по выходным я иногда накатывал на МТБ по 50 км, чего там 15 километров по лесу. Оказалось, 15 километров по лесу это совсем не то же самое, что ехать по асфальтам Москвы. Финишировал я мокрый, злой и с новым знанием о себе: накатывать километры и быть в форме это разные вещи.
Дальше расскажу, как из этого получился сайт. Но сначала кто я вообще такой.
Двадцать лет в ИТ, и ни разу для себя
Начинал сисадмином в маленьком сибирском городе. Потом ушёл в АСУТП, в диспетчеризацию горного транспорта: БелАЗы, экскаваторы, локомотивы. На каждой машине датчики, всё это льётся на сервер, диспетчер на экране видит, кто где едет и с какой скоростью. Параллельно фрилансил, делал сайты. Разработчики сайтов в Сибири в 2009-м были никому не нужны, а если и нужны, то за 3 копейки.
В 2018-м переехал в Москву. В 2020-м стал фултайм разработчиком сайтов и до сих пор им работаю.
В 2023-м первый раз приехал на работу на велосипеде и подумал: неплохой способ держать себя в форме, на зал времени всё равно нет.
Как оно затягивает
В 2024-м купил хардтейл получше и полегче, алюминий вместо стали, и под конец года на нём же поехал на ту самую гонку в лесу, с которой начал рассказ. Тогда же, под конец 2024-го, взял первый самый дешёвый алюминиевый шоссер, чтобы понять, понравится или нет. Внезапно понравилось ездить быстро по асфальту. В 2025-м проехал всю серию МВМ на хардтейле и Садовое кольцо на шоссере. Потом купил карбоновый Твиттер, тоже дешёвый, но чуть подороже, и поехал ещё быстрее.
Ровно год назад, 6 сентября 2025-го, решил проверить себя на прочность: подсмотрел у местных ребят трек и поехал один покорять свою двухсотку. Посередине пообедал пиццей, а последние километров 30 ехал на морально-волевых, других сил уже не оставалось. Получилось 210 км и 10 с половиной часов общего времении.
Потом станок, чтобы зимой хоть как-то прогрессировать. Потом мощемер.
Тренироваться начал не от хорошей жизни. Гонка в лесу была первым звонком. Второй прозвенел, когда покатался с местными ребятами и понял, что сильно отстаю по форме: банально отваливаюсь с колеса или качусь с пульсом под 160. Мясной тренер в Москве стоит как-то неадекватно, так что сначала составлял программу сам: купил распечатку «Библии велосипедиста» и сидел с ней, как с учебником. А потом в каком-то чате прочитал, что ИИ составляет неплохие программы. Попробовал. Так и тренируюсь с ИИ до сих пор, а ему нужны данные с мощемера и пульса. Много данных, аккуратно сложенных.
И вот тут выяснилось, что складывать их некуда. Страва без VPN не грузится, с VPN не грузится карта, подписка через посредников 5-10 тысяч в год. Часы и велокомп пишут в два разных облака, которые друг про друга не знают.
Я посмотрел на это и понял, что уже делал ровно такое. Датчики на машине, телеметрия в облако, склейка на сервере, картинка диспетчеру. Только вместо БелАЗа велосипед, а диспетчер это я сам.
Что получилось за полгода
Сервис называется dodofo, живёт на dodofo.ru. Подключаешь часы или велокомп, заезды сами прилетают на сайт.
Самое муторное было не написать сайт, а договориться с облаками производителей. Официально данные отдают единицы, и почти всем нужно юрлицо и договор. Поэтому большую часть я делал иначе: ставил приложение производителя, смотрел, как оно ходит на свой сервер, и повторял. Долгие вечера с перехватчиком трафика и логами на китайском.
Сейчас подключаются Garmin, Polar, Wahoo, Suunto, Coros, Huawei, iGPSPORT, Magene, CYCPLUS, MyWhoosh для станка и ноунейм-часы на WearHealth. Всё, что пишет только в себя и без облака, пока идёт лесом: подцеплять нечего, только GPX или FIT руками. Если ваше облако не в списке — напишите модель в комментариях, интересно посмотреть, насколько оно параноидальное.
А вот чего мне не хватало сильнее всего: автоматической склейки с разных железяк. Таскать на себе нагрудный датчик пульса не очень удобно, пульс у меня пишут часы. Но к часам мощемер не подключишь, а велокомп рисует трек сильно лучше моих часов. В итоге у меня два устройства пишут один заезд, и никто их не соединяет. Теперь соединяет dodofo: пульс берётся с одной железяки, трек, мощность и каденс с другой, склеивается само, и всё. Дальше зоны, нагрузка и форма, как в тренировочных дневниках. Ровно то, что нужно ИИ-тренеру.
Есть одна штука, которой я сам горжусь: «Поделиться». Картинку заезда для чата или сторис вы собираете сами, прямо в браузере. Фон на выбор: карта с треком, своё фото или прозрачный. Дальше выбираете, какие цифры показать, у каждой можно включить или убрать иконку и подпись, поменять размер. Любой элемент тащится мышкой или пальцем куда хочется, трек тоже двигается и масштабируется, можно дописать свой текст. Собрали раскладку, сохранили как шаблон, в следующий раз одна кнопка. Никаких «вот вам три стандартных варианта, выбирайте».
А ещё я сделал то, чего в Страве не было никогда: календарь всех велозаездов вокруг. Сайт читает 860 велочатов в Телеграме и 58 сайтов организаторов, вытаскивает анонсы, склеивает дубли и раскладывает по городам и датам. За полгода накопилось 3300 заездов, впереди на сегодня 275: от воскресных выездов на кофе до марафонов и бреветов. Отдельно тянутся протоколы гонок, с начала прошлого года их больше ста тысяч строк. Сайт склеивает их в профили спортсменов: все старты человека из разных протоколов собираются на одну карточку, с местом в абсолюте и в категории, отставанием от лидера, личными лучшими по дистанциям и рекордами в сериях. Плюс график «как ехал»: ближе к лидерам или к хвосту, от старта к старту.
Мне это нужно было самому. В 2025-м я проехал всю серию МВМ и Садовое кольцо, а спустя год толком не помнил, где был и какие места занял. Теперь открываю свою карточку: 7 стартов, на Садовке 617-й из 857, на Томилинском веломарафоне 14-й из 130. Всё в одном месте.
Про безопасность
Тут не могу не вспомнить Страву. В 2024-м Le Monde по публичным пробежкам телохранителей вычислила, где бывают Путин, Макрон и Байден: охрана бегала вокруг резиденций и отелей с включённым трекером, и всё это лежало в открытых профилях. А до этого была история с тепловой картой Стравы, на которой проступили военные базы. Если уж охрану президентов так ловят, то обычного человека, который каждый вечер финиширует у своего подъезда, найти совсем несложно.
Поэтому у dodofo по умолчанию скрывается примерно километр от старта и километр от финиша. Причём не по прямой, а по самому треку, чтобы петля у дома не выдала точку. Короткий заезд, где после обрезки ничего не останется, прячется целиком. Отключить можно, но осознанно, в настройках заезда.
Что криво
Скажу сам, чтобы не выяснять в комментах.
Пользователей 35, потому что до сегодняшнего дня это была закрытая бета: пускал только своих, чтобы отладить подключения. Заезды грузят четверо, один из них я. Этот пост и есть открытие дверей.
Huawei и MyWhoosh подключаются через логин на сервере dodofo, и я не уверен, что у всех проходит гладко. Xiaomi и Amazfit облаком не отдаются, их заберём через приложение, когда оно выйдет.
Приложения на телефон пока нет, оно в разработке. Записать заезд телефоном в dodofo нельзя, нужны часы или велокомп.
Календарь иногда принимает объявление «продам седло» за анонс заезда. Я это разгребаю руками, и это отдельный сорт медитации.
Пользоваться можно бесплатно. Платный тариф формально существует, но функций в нём пока особо нет: только доступ к своим данным через API и MCP. Чем его наполнять, я честно не знаю, и хочу услышать от вас, чего не хватает. Сервер оплачиваю сам.
Зачем пишу
Полгода закрытого теста на себе и своих железках, и я решил, что хватит: пора в открытый запуск. У меня не может быть всех велокомпов мира, так что дальше нужны люди с разными устройствами, которые подключатся и скажут, где сломалось.
Если у вас есть железка с необычным облаком или вы сами воевали со склейкой треков — напишите в комментариях, что вылезало. Мне интересны именно грабли: на них я учусь быстрее, чем на документации. Отвечаю на всё.
И да, если вы с местными ребятами и тоже отваливаетесь с колеса, вы не один.