Как Mecum управляет 275 тыс. страниц и 8 млн активов с помощью ISR от Next.js

Аукционный дом Mecum, известный продажами редчайших автомобилей, столкнулся с проблемой масштабирования: монолитная архитектура не справлялась с нагрузкой, создание новых лотов занимало дни, а производительность сайта падала. Вместе с агентством Americaneagle.com компания перешла на композитный стек

Как Mecum управляет 275 тыс. страниц и 8 млн активов с помощью ISR от Next.js

Аукционный дом Mecum, известный продажами редчайших автомобилей, столкнулся с проблемой масштабирования: монолитная архитектура не справлялась с нагрузкой, создание новых лотов занимало дни, а производительность сайта падала. Вместе с агентством Americaneagle.com компания перешла на композитный стек с Incremental Static Regeneration (ISR) от Next.js. Это позволило управлять 275 тысячами страниц и 8 миллионами медиаактивов, обеспечив высокую скорость и надежность.

Как Mecum перешел на ISR для управления сотнями тысяч страниц

Mecum — мировой лидер в аукционах классических автомобилей, ежегодно проводящий десятки торгов. Каждый лот требует детального описания, фотографий и истории. С ростом каталога старая система стала узким местом: добавление нового автомобиля могло занимать несколько дней, а обновление существующих страниц требовало полной перегенерации сайта. После аудита было решено отказаться от монолита в пользу композитной архитектуры на базе Next.js с ISR.

Incremental Static Regeneration позволяет генерировать статические страницы по запросу, а не все сразу. Это значит, что новые лоты появляются на сайте практически мгновенно, а старые страницы обновляются без простоя. Mecum удалось сократить время создания лота с нескольких дней до нескольких минут. Кроме того, сайт теперь обслуживает 8 миллионов медиафайлов — фотографий и видео — без потери производительности.

Предыстория и контекст

До внедрения ISR Mecum использовал традиционный CMS-подход, где каждая страница генерировалась динамически при каждом запросе. Это создавало нагрузку на серверы и замедляло загрузку. С ростом числа лотов — сейчас их более 275 тысяч — стало ясно, что нужен более эффективный метод. Композитная архитектура, в которой фронтенд отделён от бэкенда, позволила использовать лучшие инструменты для каждой задачи: Next.js для фронтенда, Headless CMS для управления контентом и CDN для раздачи статики.

Выбор ISR вместо полной статической генерации (SSG) был осознанным: SSG потребовала бы перестраивать весь сайт при каждом изменении, что при 275 тысячах страниц заняло бы часы. ISR же обновляет только те страницы, которые изменились, и делает это в фоне, не влияя на пользователей.

Как работает Incremental Static Regeneration?

ISR — это гибридный подход между статической и динамической генерацией. Страницы генерируются как статические HTML-файлы при первом запросе, но с заданным временем жизни (revalidate). Когда время истекает, следующий запрос вызывает фоновую регенерацию страницы, после чего новая версия заменяет старую. Это обеспечивает скорость статики и свежесть динамики.

В случае Mecum каждая страница лота имеет revalidate, например, 60 секунд. Если данные о машине изменились (например, обновилась цена), страница автоматически перегенерируется в течение минуты. Пользователи при этом всегда видят актуальную версию, а серверы не перегружаются.

Технические детали внедрения

Americaneagle.com построила новую инфраструктуру на платформе Vercel, которая изначально поддерживает ISR. Медиафайлы (8 миллионов) хранятся в облачном хранилище и раздаются через CDN. Страницы лотов генерируются с помощью Next.js getStaticProps с параметром revalidate. Для управления контентом используется headless CMS, которая через API передаёт данные в Next.js.

Ключевой показатель успеха — время до первого байта (TTFB) осталось низким даже при пиковых нагрузках во время аукционов. Mecun также внедрил кэширование на уровне CDN, что дополнительно снизило задержки. В результате сайт выдерживает трафик в десятки тысяч одновременных посетителей без деградации.

Кого затронет и как

Для разработчиков и архитекторов этот кейс — практическое доказательство эффективности ISR для крупных контентных проектов. Mecum показал, что даже 275 тысяч страниц не являются пределом для Next.js. Для бизнеса это означает сокращение time-to-market: новые лоты появляются быстрее, что критично для аукционов, где время имеет значение. Пользователи получают молниеносную загрузку страниц и всегда актуальные данные.

В российском контексте этот опыт может быть полезен для крупных маркетплейсов, каталогов товаров или медиа-сайтов с большим объёмом контента. ISR позволяет балансировать между свежестью и производительностью без дорогих серверных решений.

Что будет дальше

Mecum планирует расширять использование ISR на другие разделы сайта, включая архивные страницы и результаты прошедших аукционов. Также рассматривается внедрение Edge Functions для персонализации контента. Vercel и Next.js продолжают развивать ISR, добавляя поддержку потоковой регенерации и более тонкие настройки кэширования.

В целом, кейс Mecum демонстрирует, что ISR — зрелая технология, готовая к промышленному использованию. С ростом объёмов данных и требований к производительности такие гибридные подходы будут только набирать популярность.

Итог

Переход Mecum на ISR от Next.js позволил решить проблему масштабирования, сократив время создания лотов с дней до минут и обеспечив стабильную работу с 275 тысячами страниц и 8 миллионами медиафайлов. Этот пример показывает, что правильный выбор архитектуры может кардинально улучшить как пользовательский опыт, так и операционную эффективность бизнеса.