Cloudflare Outage, CSS Masonry Syntax, and Chrome Animation Optimizations
Published on 19.11.2025
Cloudflare Outage, CSS Masonry Syntax, and Chrome Animation Optimizations
TLDR: A major Cloudflare outage on November 18, 2025, caused by a database permissions change, took down significant portions of the web and reignited debates about centralization. Meanwhile, the CSS Working Group adopted display: grid-lanes for masonry layouts, and Chrome Canary shipped optimizations allowing width/height animations to run on the compositor thread under specific conditions.
Summary:
November 18, 2025, will be remembered as one of the web's most significant infrastructure failures since 2019. Cloudflare experienced a multi-hour outage affecting core CDN and security services, resulting in widespread 5xx errors across the internet. The root cause wasn't a cyberattack but a seemingly mundane database permissions change in their ClickHouse cluster. This change caused a bot management configuration file to output duplicate entries, doubling its size beyond the limit that Cloudflare's proxy software could handle. The software panicked, returning HTTP 500 errors to users trying to access Cloudflare-protected sites.
What made this particularly tricky to diagnose was that the bad configuration file was only generated intermittently—every five minutes there was a chance of either a good or bad file being propagated across Cloudflare's network. This fluctuation initially led the team to suspect a DDoS attack. Cloudflare's status page also went down around the same time (pure coincidence, hosted off their infrastructure), which reinforced the attack theory. Core traffic was restored by 14:30 UTC after the team stopped propagation of the bad file and manually inserted a known good version, though full recovery took until 17:06 UTC.
This incident has sparked renewed criticism of Cloudflare's centralization of web infrastructure. One perspective argues that sites shouldn't use Cloudflare unless they genuinely need DDoS protection—most small blogs with a few thousand visitors per month don't. The counterargument acknowledges that some sites have legitimate needs: lack of public IPs, protection against targeted attacks, or defense against AI crawler overload. The debate underscores a fundamental tension in modern web architecture: decentralization is ideal in theory, but centralized services solve real problems that individual developers struggle to address.
On the CSS front, the CSS Working Group made a significant decision regarding masonry layouts. After extensive debate, they resolved to use display: grid-lanes as the syntax for triggering masonry layout mode. This follows earlier discussions about whether masonry should be a separate display value, use grid-template-rows/columns: collapse, or integrate with the newly adopted item-flow proposal. The grid-lanes approach provides a clear semantic distinction while maintaining compatibility with existing grid properties.
Chrome Canary (version 144.0.7512.0) shipped a performance optimization that frontend developers have wanted for years: width and height animations can now run on the compositor thread if their values don't change throughout the animation. Historically, animating width or height forced animations onto the main thread because these properties trigger layout recalculations. But Blink now performs a smarter check—if width/height values remain constant across all keyframes (including implicit ones), no layout is needed, so the animation can run on the compositor. This immediately benefits View Transitions, where ::view-transition-group(*) pseudos have width and height in their keyframes that typically don't change. The optimization is strict about floating-point precision currently, but a patch is in flight to handle minor differences more gracefully.
For architects and teams, several takeaways emerge from this week's frontend developments. First, centralized infrastructure dependencies create single points of failure—evaluate whether your site truly needs services like Cloudflare or if round-robin DNS and basic hosting suffice. Second, CSS is evolving rapidly to absorb features previously requiring JavaScript frameworks. The masonry syntax decision and range syntax coming to container style queries represent a broader trend: the web platform is catching up. Third, performance optimizations in browsers are increasingly sophisticated. Chrome's width/height animation optimization shows that browser vendors are thinking carefully about compositor threading, which means your CSS animations can be faster without code changes—assuming you write them correctly.
The XPath deep dive in Smashing Magazine reminds us that older web technologies remain powerful. XPath can query elements by position, text content, and attributes in ways CSS selectors cannot. Combined with CSS selectors via a unified API, you gain expressiveness that's particularly valuable for testing and automation. Similarly, the "self-destructing CSS" pattern for web components demonstrates how CSS animations can provide fallback behavior when JavaScript fails to load—hiding undefined custom elements briefly but automatically revealing them after two seconds if enhancement doesn't occur.
Mozilla announced an "AI Window" feature coming to Firefox, positioning it as a third browsing mode alongside Normal and Private. The community response was overwhelmingly negative, with users arguing that Firefox's value proposition is being a non-AI, privacy-focused alternative to browsers made by AI companies. Meanwhile, Google launched Gemini 3, which developers on social media note is particularly good at building web pages from a design perspective—worth experimenting with for frontend prototyping.
Key takeaways:
- Cloudflare's November 18 outage demonstrates the fragility of centralized web infrastructure—evaluate whether your sites genuinely need CDN/DDoS protection
- CSS Working Group adopted
display: grid-lanesfor masonry layouts, following theitem-flowproposal for flow control - Chrome Canary optimizes width/height animations to run on the compositor thread when values don't change, immediately benefiting View Transitions
- XPath combined with CSS selectors provides powerful querying capabilities beyond CSS alone, particularly useful for test automation
- Self-destructing CSS patterns (using animations with time limits) provide graceful degradation for web components when JavaScript fails
Tradeoffs:
- Centralized CDNs like Cloudflare provide DDoS protection and global distribution but create single points of failure affecting millions of sites
- CSS is absorbing framework features (masonry, container queries), reducing JavaScript dependency but increasing CSS complexity
- Compositor-threaded animations gain performance but sacrifice compatibility with older browsers and require careful keyframe design