Skip to main content

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 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.
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.
By placing image decoding and network requests in separate processes, a crash or exploit in those areas cannot directly compromise the rest of the browser. Each WebContent renderer is independently sandboxed.

Platform Support

PlatformStatus
LinuxFully supported; Qt UI (default), GTK 4 (experimental)
macOSFully supported; AppKit UI (default), Qt optional
WindowsSupported via WSL2; experimental native Clang-CL build
AndroidSupported 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.

Build docs developers (and LLMs) love