Race-weekend traffic spikes, served from cache. Editors ship live.
NASCAR Studios produces race-weekend content across web and OTT. Traffic spikes 40× on race day. Their previous site went down twice in a season under load. Editors needed to publish lap-by-lap updates without a developer present.
NASCAR Studios produces content for race weekends: driver profiles, race previews, lap-by-lap updates, and post-race analysis. Traffic spikes 40× on race day — from 50k concurrent users on a Tuesday to 2M on a Sunday afternoon. Their previous site had gone down twice in a season under load, both times requiring a developer to manually flush the CDN cache.
The performance constraint The site had to serve race-day traffic from cache, period. No origin requests on race day. This shaped every architecture decision: content had to be fully pre-rendered, cache invalidation had to be surgical (invalidate one driver's page, not the entire site), and the CMS had to publish without triggering a full rebuild.
Storyblok + Astro on Cloudflare Pages We chose Astro for its island architecture — the majority of the site is zero-JS static HTML, with interactive components hydrated only where needed. Storyblok's webhook-driven ISR let editors publish a story update and see it live in under 10 seconds without touching the build pipeline.
Cloudflare Pages serves the site from 300+ edge locations. On race day, every page is already in cache at every location. The 40× traffic spike hits cache, not origin. We load-tested to 5M concurrent requests before the first race weekend.
Lighthouse 97 → 100 The previous site scored 97 on mobile Lighthouse — good, but not perfect. Three things pulled it to 100: replacing a third-party font loader with next/font-equivalent static loading in Astro, lazy-loading below-the-fold images with proper width and height attributes, and moving the analytics snippet to requestIdleCallback. The 3-point improvement reduced bounce rate by 8% on mobile.
Editorial workflow Editors use Storyblok's visual editor to compose race previews before the weekend, schedule them for publication, and publish lap-by-lap updates from pit lane on a tablet. No developer is present on race day. The Cloudflare cache purge happens automatically via Storyblok webhook — editors see their changes live in under 10 seconds.