«У нас всё падает, но мы не можем воспроизвести»
С этой фразы начался наш понедельник в декабре 2025. Пользователи жаловались: кнопка «Оплатить» в корзине не реагирует. Но только у некоторых, только в Chrome на Windows, и только если до этого добавить товар в избранное. Support висел в Slack: «Не можем воспроизвести, закройте тикет».
Официальный сайт: logrocket.com
Три дня команда из четырёх разработчиков перебирала гипотезы: race condition в Redux? Кривой event listener? Конфликт плагинов? На третий день тимлид сказал: «Ставим LogRocket».
Что такое LogRocket на самом деле
LogRocket — не просто очередной session replay. Это цифровой видеорегистратор для фронтенда. Он записывает:
- DOM и все изменения в нём (не видео, а инкрементальный снепшот — весит мало).
- Сетевые запросы: какой fetch упал, с каким статусом, что в теле ответа.
- Консоль: ошибки, warnings, console.log.
- Redux/Vuex/Pinia store: экшены, состояние до и после.
- Performance-метрики: First Paint, CLS, TTFB.
- User actions: клики, нажатия клавиш, скроллы.
Всё это связывается в одну таймлайн-сессию. Открываешь сессию проблемного пользователя — и видишь: вот он кликнул «Добавить в избранное», вот сработал dispatch ADD_TO_FAVORITES, а вот рендер обновил DOM и перетёр обработчик на кнопке «Оплатить».
Баг найден за 15 минут. Пуш-фикс улетел в продакшен через час. Три дня дебаггинга против 15 минут с LogRocket.
Что под капотом
LogRocket — не простой плеер видео. Он использует формат rrweb (record and replay the web): вместо захвата пикселей — запись мутаций DOM. Это даёт три преимущества:
- Малый размер сессий — 5-50 КБ на минуту записи.
- Поиск по содержимому — можно найти все сессии, где был console.error с текстом «payment failed».
- Приватность — можно маскировать инпуты с паролями и номерами карт.
Внедрение: 5 минут в консоли, 20 строк кода
Установка — одна команда:
npm install logrocketИнициализация в index.js:
import LogRocket from 'logrocket';
LogRocket.init('ваш_app_id');Для React — middleware для Redux:
import LogRocket from 'logrocket';
import { applyMiddleware, createStore } from 'redux';
const store = createStore(reducer, applyMiddleware(LogRocket.reduxMiddleware()));Готово. Все сессии пишутся, фронтенд не тормозит (запись асинхронная, не блокирует main thread).
Партнёрская программа
LogRocket работает через PartnerStack:
- Комиссия: 25% от первого года подписки клиента.
- Средний чек: команда из 5 разработчиков на Team-плане ($99/seat) → $495/мес → комиссия с первого года: ~$1 485.
- Cookie: 90 дней.
- Кому продавать: тимлидам, CTO стартапов, фронтенд-командам.
Это не масс-маркет. Но один приведённый клиент приносит больше, чем 100 установок VPN. Идеально для технических блогов и YouTube-каналов про разработку.
Тарифы: от бесплатного до Enterprise
- Free: 1 000 сессий/мес, 30 дней хранения. Для соло-разработчика.
- Team ($99/мес за seat): 10 000 сессий/мес, неограниченное хранение, алерты, экспорт.
- Enterprise: кастом, SSO, on-premise.
Порог входа высокий, но и ценность пропорциональна. Команде из 5 человек Team-тариф окупается сокращением времени на баг-фиксы.
Где LogRocket проигрывает
- Мобильные приложения. React Native — экспериментально. Flutter — нет. Для мобильного мониторинга нужен Sentry или Firebase Crashlytics.
- Бэкенд. LogRocket — строго фронтенд. Бэкенд-ошибки не видит (для этого Sentry).
- Стоимость для больших команд. 10 разработчиков на Team = $990/мес. Sentry — дешевле для чисто error-мониторинга.
Итог: когда LogRocket незаменим
- У вас SPA на React/Vue/Angular, и пользователи жалуются на баги, которые support не может воспроизвести.
- Вы делаете SaaS с платными пользователями — каждый баг стоит денег.
- Вы устали от «работает на моей машине» — LogRocket показывает, что видит пользователь.
- Вы продаёте инструменты разработки как аффилиат — высокий чек, длинный cookie.
LogRocket не замена Sentry. Это комплемент: Sentry для ошибок и бэкенда, LogRocket для пользовательского опыта и фронтенда. Вместе — полный observability-стек.