Как выжать максимум из тренировочных логов с помощью LiftShift
Если вы ходите в зал и аккуратно записываете каждый подход в Hevy, Strong или Lyfta, то наверняка замечали одну деталь. Мобильные трекеры отлично собирают сырые данные, но почти не помогают их осмыслить. В лучшем случае приложение покажет график одного упражнения за месяц и поздравит с новым разовым максимумом. При этом сложно понять главное: какие мышечные группы вы систематически недогружаете, где начался реальный застой и пора менять схему, а где обычная усталость на третьем подходе.
Недавно наткнулся на open-source проект LiftShift. Это веб-инструмент для глубокого анализа тренировочных логов, который работает прямо в браузере и не требует регистрации.
Что умеет проект
Основная идея проста: вы скармливаете приложению свой экспорт или подключаете аккаунт, а оно раскладывает тренировки по полочкам с точки зрения спортивной периодизации.


Вот вещи, которые сразу бросаются в глаза при разборе дашборда:
- Тепловая карта мышц. Интерактивная модель тела показывает объём нагрузки на каждую группу. Можно кликнуть по конкретной мышце и увидеть упражнения, которые дали этот стимул. Алгоритм рассчитывает зоны объёма (пороги MEV и MRV) с поправкой на тренировочный стаж и выставляет балл гипертрофии от 0 до 100.
- Детекция плато. Вместо простого тренда веса инструмент присваивает упражнениям понятные статусы: рост, плато или спад. При этом система разделяет глухие застои (когда вес и повторения замерли намертво) и волнообразные колебания, после чего подсказывает решение: накинуть повторение, сбросить рабочий вес на разгрузочной неделе или сменить диапазон повторов.
- Разбор каждого подхода. Можно открыть любую прошлую сессию и посмотреть оценку подходов. Система определяет нормальное утомление, слишком резкие шаги по весу, грамотные дроп-сеты или подходы до отказа (AMRAP). Рядом с каждым сетом появляется бейдж и прямой совет на следующую тренировку.
- Объединение данных из разных приложений. Если вы годами вели Strong, а потом перешли на Hevy, история обычно рвётся. Проект умеет сопоставлять разные названия одних и тех же упражнений, удалять дубликаты и склеивать всё в единый таймлайн.
- Экспорт под нейросети. Если встроенных графиков мало, данные выгружаются в структурированном виде под промпты для ChatGPT или Claude. Есть готовые модули: аудит мусорного объёма, проверка баланса сторон или оценка нагрузки на суставы.
- Календарная тепловая карта в стиле GitHub. Наглядно видно стрики, пропущенные недели и регулярность за весь год.


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


Фронтенд собран на современном стеке: React 19, TypeScript, Vite, Tailwind CSS и библиотека Recharts для визуализации данных. Небольшой бэкенд на Node.js с Express и Puppeteer нужен исключительно как прокси для вызовов к API трекеров вроде Hevy и Lyfta, где требуется обход ограничений браузерного CORS или авторизация. Сами тренировочные логи на сервере не оседают.
Для работы со Strong поддерживается импорт CSV-файлов с разделителями-точками с запятой, кавычками и суффиксами мер веса в заголовках.
Как запустить локально
Если хотите развернуть проект у себя на машине или дописать нужный парсер, достаточно пары команд. Понадобится свежий Node.js версии 22 или новее.
git clone https://github.com/aree6/LiftShift.git
cd LiftShift
npm install
npm run dev
После запуска локальный сервер откроется на стандартном порту Vite.

Если пользуетесь публичной версией на сайте проекта, достаточно выбрать платформу, загрузить CSV или вставить API-ключ, указать единицы измерения (кг или фунты) и перейти к дашборду.
Маленький нюанс: при экспорте из Hevy приложение иногда ругается на формат дат. Это происходит из-за неанглийской локали в исходном приложении. Достаточно временно переключить язык экспорта на английский:

Кому проект пригодится
LiftShift отлично закрывает дыру между простыми блокнотами для зала и сложными тренерскими таблицами в Excel. Если вам лень вручную считать тоннаж по группам мышц и выискивать дисбалансы, веб-клиент делает это за пару секунд.
Проект распространяется под лицензией AGPL-3.0. Кодовая база понятная, написана на строгом TypeScript, так что если вы хотите прикрутить поддержку своего любимого фитнес-трекера или добавить новые метрики периодизации, контрибьютить сюда довольно приятно.
