This Month in Ladybird - August 2026
In August 2026, Ladybird achieved significant advancements in its browser engine. The addition of video playback on Twitch and enhanced video formats on YouTube improved the user experience. CSS scroll snap functionality was introduced, enabling content to snap into place when scrolling. JavaScript debugging capabilities were implemented within the DevTools, providing developers with powerful tools for code analysis.
Downloads could be paused and resumed, improving user convenience and reducing data usage. Session restore functionality was enhanced, allowing users to restore their browsing sessions across browser restarts.
Performance optimization took center stage in August. The style engine received a substantial overhaul, leading to improved layout caching and CSS animation execution off the main thread. The CSS parsing and painting pipeline were moved to the Rust programming language, enhancing efficiency and reliability. Additionally, cell pointers stored in JavaScript values were caged, preventing memory-related issues.
Ladybird's funding model remains reliant on the generous support of companies and individuals who believe in the open web. New sponsors were welcomed during this month, and the project's current sponsors were acknowledged on their page. To foster transparency and collaboration, Ladybird implemented Media Source Extensions support for fragmented MP4, AVC (H.264), HEVC (H.265), AV1, and AAC codecs. This enhancement allowed for adaptive-bitrate video playback on a wider range of sites, including Twitch and Plex.
Noteworthy playback bug fixes included the resolution of issues with hovering YouTube video-card previews, preload settings, and HLS.js-based players. Scroll snap functionality was introduced, allowing for smooth scrolling and content adjustment when reaching the edge of the viewport. Wheel, keyboard, scrollbar dragging, touchpad flings, and programmatic scrollTo() all supported scroll snapping, enhancing user interaction.
Debugging capabilities were expanded, allowing developers to set breakpoints, step through code, and evaluate watch expressions. These features relied on new breakpoint support in the JavaScript engine. While full DevTools support remains a work in progress, the core workflow is now functional.
Download functionality was enhanced, allowing for pause and resume capabilities, and surviving browser restarts when supported by the server. The browser now downloads content over four parallel connections when possible. The "Duplicate Tab" feature was introduced, duplicating the session history across tabs. However, form submission data is not persisted, requiring careful handling first.
Ladybird's handling of broken content based on User-Agent sniffing improved with the introduction of declarative site-compatibility rules loaded at runtime. This approach allows for greater transparency and easier maintenance. The first users of these rules were nytimes.com and cnn.com, which rendered properly when the "Ladybird" string was hidden from the User-Agent string.
The browser benchmarks were continuously monitored, with improvements tracked on the linegodown.lol website. Speedometer 2 scores increased from approximately 47 to 64, Speedometer 3 scores rose from around 2.5 to 3.9, and StyleBench scores climbed from 3.5 to 83. While these metrics are still modest compared to established engines, the steady progress is evident.
Individual operations, such as canvas fillStyle parsing, replaceChildren(), and list insertion/removal, saw significant performance improvements, ranging from 90x to 2x, 13x to under 4x, and 120x to under 20x, respectively.
The JavaScript engine received notable performance enhancements, including the introduction of fast paths for property access, spread syntax, promise combinators, and JSON.stringify. These optimizations brought the engine's performance closer to V8's, with arrays that temporarily went sparse now achieving better performance. The most significant fix involved the replacement of the selector matching, style invalidation, cascade, and computed-style retention mechanisms with a new engine.
This redesign aimed to make style work proportional to the actual changes, rather than the potential changes. This innovation treated DOM mutations, state changes, and CSSOM edits as a stream of typed deltas, routing each delta to the relevant selectors and stopping the propagation as soon as the output remained unchanged. The engine's input stream can be recorded and replayed deterministically, enabling the identification and resolution of correctness issues.
Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.