Ladybird is a truly independent web browser and browser engine, written from scratch in C++ rather than as a fork of any existing engine, and it is built for developers who want to work on a browser engine based on web standards while it remains in a pre-alpha state.
What it is
Ladybird is an open-source browser project hosted on GitHub under a 2-clause BSD licence, with 66,233 stars, 3,163 forks and 535 open issues as of its most recent push on 17 September 2026. It ships a novel engine built against web standards instead of forking an existing one, which is what the project means by "truly independent". Much of its supporting machinery is inherited from SerenityOS: LibWeb provides the rendering engine, LibJS the JavaScript engine and LibWasm the WebAssembly implementation, while LibCrypto and LibTLS cover cryptography and Transport Layer Security, LibHTTP provides an HTTP/1.1 client, LibGfx handles 2D graphics, image decoding and rendering, LibUnicode provides Unicode and locale support, LibMedia handles audio and video playback, and LibCore and LibIPC supply the event loop, OS abstraction layer and inter-process communication.
The concrete problem it addresses is dependence on another vendor's engine codebase. The facts do not name a specific engine that Ladybird replaces; the stated design is that it is not a fork at all, and that it is written from scratch against standards rather than inheriting another project's architecture. The ecosystem here is the C++ browser engine space, and the repository carries the topics browser and browser-engine.
Key capabilities
- Multi-process architecture consisting of a main UI process, several WebContent renderer processes, an ImageDecoder process and a RequestServer process.
- Each tab runs in its own renderer process, sandboxed from the rest of the system.
- Image decoding and network connections are performed out of process, which the project describes as making the browser more robust against malicious content.
- LibWeb provides web rendering, LibJS provides the JavaScript engine, and LibWasm provides the WebAssembly implementation.
- LibCrypto and LibTLS supply cryptography primitives and TLS, and LibHTTP supplies an HTTP/1.1 client.
- LibGfx covers 2D graphics, image decoding and rendering, LibUnicode covers Unicode and locale support, and LibMedia covers audio and video playback.
- LibCore provides the event loop and OS abstraction layer, and LibIPC provides inter-process communication between the processes.
- Runs on Linux, macOS, Windows through WSL2, and many other *Nixes.
Who uses it and how
- Developers working on the engine itself, since the README states Ladybird is pre-alpha and suitable only for use by developers.
- Contributors joining issue and development discussion through the project's Discord server.
- New contributors following Documentation/GettingStartedContributing.md before opening an issue, and reading the issue policy in CONTRIBUTING.md plus the detailed guidelines in ISSUES.md.
- People building and running the browser locally on Linux, macOS, Windows with WSL2, or other *Nixes.
- Teams forking or reading the source, consistent with 3,163 forks against 66,233 stars.
Getting started
There is no published package, Docker image or compose file in the facts. The README points to Documentation/BuildInstructionsLadybird.md for instructions on how to build and run Ladybird.
How it compares
The facts name no paid products that Ladybird replaces, and they name no comparable browser engines either. SerenityOS appears only as the source of inherited library components, not as a competing browser. On the evidence given, Ladybird stands alone in this registry.
When to use it — and when not to
Use it if you are a developer who wants to build, run and contribute to an independent C++ browser engine, and you accept the pre-alpha state and compile it from source using Documentation/BuildInstructionsLadybird.md. Do not pick it for everyday browsing: the README states plainly that it is only suitable for use by developers, and the facts list no released package, installer or container image. The honest limitation is that the README is short, the state is pre-alpha, and the build path expects Linux, macOS, Windows with WSL2 or another *Nix.
project readme (upstream, from github) — read inline
Ladybird
Ladybird is a truly independent web browser, using a novel engine based on web standards.
[!IMPORTANT]
Ladybird is in a pre-alpha state, and only suitable for use by developers
Features
We aim to build a complete, usable browser for the modern web.
Ladybird uses a multi-process architecture with a main UI process, several WebContent renderer processes,
an ImageDecoder process, and a RequestServer process.
Image decoding and network connections are done out of process to be more robust against malicious content.
Each tab has its own renderer process, which is sandboxed from the rest of the system.
At the moment, many core library support components are inherited from SerenityOS:
- LibWeb: Web rendering engine
- LibJS: JavaScript engine
- LibWasm: WebAssembly implementation
- LibCrypto/LibTLS: Cryptography primitives and Transport Layer Security
- LibHTTP: HTTP/1.1 client
- LibGfx: 2D Graphics Library, Image Decoding and Rendering
- LibUnicode: Unicode and locale support
- LibMedia: Audio and video playback
- LibCore: Event loop, OS abstraction layer
- LibIPC: Inter-process communication
How do I build and run this?
See build instructions for information on how to build Ladybird.
Ladybird runs on Linux, macOS, Windows (with WSL2), and many other *Nixes.
How do I read the documentation?
Code-related documentation can be found in the documentation folder.
Get in touch and participate!
Join our Discord server to participate in issue and development discussions.
Please read Getting involved with Ladybird if you're new to Ladybird and want to help.
Before opening an issue, please see the issue policy and the detailed issue-reporting guidelines.
The project participation guidelines can be found in CONTRIBUTING.md.
License
Ladybird is licensed under a 2-clause BSD license.