Ladybird is a truly independent web browser — not a Chromium shell, not a WebKit port, not a Firefox fork. Its engine is written entirely from scratch, implementing the modern web platform directly from WHATWG, W3C, and IETF specifications. The project began inside SerenityOS as a small HTML viewer called LibHTML, evolved into LibWeb, was named Ladybird in July 2022, and spun off as its own cross-platform project in September 2022. Today it is developed under the Ladybird Browser Initiative, a nonprofit funded entirely through donations and sponsorships — with no search-engine deals, no user monetization, ever.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ladybirdBrowser/ladybird/llms.txt
Use this file to discover all available pages before exploring further.
Ladybird is pre-alpha software. It must be built from source and is currently suitable only for developers and contributors who want to help shape the browser. It is not yet ready for daily use.
Core Library Components
Ladybird is built on a set of purpose-built libraries, many of which originated in SerenityOS and are now developed as first-class parts of the Ladybird project.LibWeb
The core web-rendering engine. Handles HTML parsing, CSS layout, the DOM, browser APIs, and events — all implemented spec-algorithm by spec-algorithm.
LibJS
A JavaScript engine written from scratch (currently JIT-less). Interprets and executes ECMAScript directly from source.
LibWasm
A WebAssembly implementation written entirely from scratch. Parses and executes
.wasm modules inside the browser.LibCrypto / LibTLS
Provides cryptographic primitives and Transport Layer Security for secure network connections.
LibHTTP
An HTTP/1.1 client used by the RequestServer process to fetch resources from the network.
LibGfx
A 2D graphics library responsible for rendering, image decoding, and compositing of painted content.
LibUnicode
Provides Unicode support, locale handling, and text-segmentation algorithms used throughout the engine.
LibMedia
Handles audio and video playback, decoding media streams for
<audio> and <video> elements.LibCore
An event loop and OS abstraction layer that underpins all process communication and I/O throughout Ladybird.
LibIPC
Implements inter-process communication between the browser’s separate processes using typed message passing.
Multi-Process Architecture
Ladybird uses a multi-process architecture to improve security and robustness. The main UI process coordinates a set of isolated child processes:- UI process — Manages windows, tabs, and user interaction.
- WebContent processes — One per tab; each is sandboxed from the rest of the system and runs the rendering engine, JavaScript engine, and layout code.
- ImageDecoder process — Decodes images out-of-process to isolate potentially malicious image data.
- RequestServer process — Handles all network connections out-of-process, keeping network code isolated from the renderer.
Platform Support
| Platform | Status |
|---|---|
| Linux | Fully supported; Qt UI (default), GTK 4 (experimental) |
| macOS | Fully supported; AppKit UI (default), Qt optional |
| Windows | Supported via WSL2; experimental native Clang-CL build |
| Android | Supported via Android NDK and Android Studio |
Release Roadmap
Ladybird’s development follows a phased roadmap targeting Linux and macOS first:- 2026 — Alpha release: a daily driver for developers and early adopters.
- 2027 — Beta release: a downloadable app for Linux and macOS.
- 2028 — Stable release for general use.
History
Ladybird’s roots go back to June 2019, when a commit titled “LibHTML: Start working on a simple HTML library” was made inside SerenityOS, motivated by a desire for rich text rendering. LibHTML grew into LibWeb, which became the core of a full browser engine. On 4 July 2022, Andreas Kling named it Ladybird during a live-coding session. In September 2022 it was announced as its own cross-platform project. In July 2024 the Ladybird Browser Initiative was officially launched alongside an initial $1 million donation.Getting Help
The Ladybird Discord server is the primary place for development discussion, build problems, and community questions. The#build-problems channel is the right place for build-specific issues.
Where to Go Next
Build on Linux & macOS
Full prerequisites, distro-specific package commands, and the core build flow for Unix-like systems.
Build on Windows & Android
How to use WSL2, the experimental native Clang-CL build, and Android Studio or Gradle.
Getting Started Contributing
How to find bugs, submit issues, learn the codebase, and make your first contribution.
AK Standard Library
Ladybird’s own standard library — smart pointers, strings, collections, and more.
