explaingit

ladybirdbrowser/ladybird

🔥 Hot63,415C++Audience · developerComplexity · 5/5ActiveLicenseSetup · hard

TLDR

An independent web browser built from scratch with its own custom engine, aiming to break the duopoly of Chromium and WebKit in the browser market.

Mindmap

mindmap
  root((Ladybird))
    What it does
      Custom browser engine
      Multi-process architecture
      Sandboxed tabs
    Key components
      LibJS engine
      LibWeb renderer
      WebAssembly support
      HTTP client
    Architecture
      Isolated renderer
      Image decoder
      Request server
    Use cases
      Developer contribution
      Engine research
      Browser testing
    Tech stack
      C++ core
      Rust components
      SerenityOS origin
    Status
      Pre-alpha stage
      Linux macOS Windows

Things people build with this

USE CASE 1

Contribute to an independent browser engine project and help break browser market consolidation.

USE CASE 2

Research and experiment with custom web rendering, JavaScript engines, and multi-process browser architecture.

USE CASE 3

Test web compatibility and standards compliance against a non-Chromium, non-WebKit implementation.

Tech stack

C++RustJavaScriptWebAssemblyHTML/CSS

Getting it running

Difficulty · hard Time to first run · 1day+

Building a custom browser engine from scratch requires compiling large C++/Rust codebase, resolving complex dependencies, and likely needs specific toolchain versions.

Use freely for any purpose including commercial. Keep the copyright notice.

In plain English

Ladybird is an independent web browser being built from scratch, with its own completely custom browser engine not derived from any existing browser code base. The problem it addresses is the consolidation of the web browser ecosystem: today the vast majority of browsers are built on one of only two major engines, Chromium's Blink or Apple's WebKit. This means that one or two companies effectively control how the web works technically. Ladybird aims to be a genuine third independent voice in the web engine landscape. The browser uses a multi-process architecture where each browser tab runs in its own isolated renderer process, image decoding happens in a separate process, and network requests are handled by a dedicated RequestServer process. This design improves security by containing the damage if a malicious web page tries to exploit a bug, it can only affect its own sandboxed renderer process rather than the whole browser. The engine includes its own JavaScript engine (LibJS), HTML and CSS renderer (LibWeb), WebAssembly support, cryptography libraries, HTTP client, graphics library, and Unicode handling, all custom components originally developed for the SerenityOS operating system project. The README is clear that Ladybird is currently in pre-alpha state and is only suitable for use by developers who want to contribute, not for everyday browsing. It runs on Linux, macOS, and Windows via WSL2. The tech stack is C++ for the core engine with a growing Rust component.

Copy-paste prompts

Prompt 1
How do I set up Ladybird on my machine and build it from source?
Prompt 2
What are the main differences between Ladybird's multi-process architecture and how Chromium handles process isolation?
Prompt 3
Show me how to contribute a bug fix to Ladybird's LibWeb HTML/CSS renderer.
Prompt 4
How does Ladybird's custom JavaScript engine (LibJS) compare to V8 or JavaScriptCore in terms of features?
Prompt 5
What are the current limitations of Ladybird's WebAssembly support and how can I help improve it?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.