Mindket

Ladybird

Newversion 2 · updated
Star66.9k

Overview

The Ladybird developers’ web browser, with its own engine built on web standards. It is pre-alpha and for developers, so you build it from source. These notes give the build steps for Linux, macOS, Windows with WSL2, FreeBSD and Android.

Ladybird is an open-source project on GitHub in the Developer category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

At a glance

Runs in
  • Linux: Debian and Ubuntu, Arch and Manjaro, Fedora, openSUSE and Void, each with its own package line, and a Nix development shell kept in the nix-environments repository
  • macOS: Xcode 15, or clang from Homebrew
  • Windows: WSL2 is the supported route, and a native Clang-CL build is experimental
  • FreeBSD: a package line on the build page
Start with
git clone https://github.com/LadybirdBrowser/ladybird.git
cd ladybird
./Meta/ladybird.py run

Platform

LinuxOperating system
macOSOperating system
WindowsOperating system
AndroidOperating system

About

What it is

Ladybird is a web browser with its own engine, built on web standards. Its README calls it a truly independent web browser in a pre-alpha state, only suitable for developers. The FAQ says it is not a Chromium shell, not a WebKit port and not a Firefox fork. Many core libraries are inherited from SerenityOS, and the FAQ names Harfbuzz, Skia, simdutf and libcurl among its third-party ones. This entry is about building and running it, since there is no installer to download.

  1. Install the build packages for your system
  2. Clone the repository
  3. Run ./Meta/ladybird.py run in the clone
  4. The script builds a Release version and starts it
  5. Try sites and file a reduced test case for what breaks

Who it suits

Developers who want to try a new browser engine, read its code or test their sites in it. The README says it is only suitable for developers today. The FAQ roadmap lists an alpha for developers and early adopters on Linux and macOS in 2026, so today you build it rather than install it.

Who uses it, and how
IndustryWho uses itHow they use itExample
Browser engineeringC++ developersBuild it, read the engine libraries and work through failing or timing-out WPT testsA developer opens the timing-out tests on wpt.fyi and isolates one, as the Getting involved page suggests.
Web developmentFront-end developersOpen their pages in an independent engine and report what renders differentlyA front-end developer saves a broken page with SingleFile, cuts it down and posts the reduced case with the issue.
Standards workPeople who read the specsCompare a spec algorithm with the code, which the FAQ says follows the spec steps and quotes the spec text in commentsA reader of the HTML spec finds the matching class and checks the quoted steps against the spec.
LearningStudents of browser engineeringRead the code beside the book Web Browser Engineering, which the Getting involved page recommendsA student builds the book’s small Python browser first, then opens LibWeb to compare.

Skip it if you need a daily browser. The README says it is only suitable for developers, and the FAQ says you have to build it from source to try it.

Where to use it

The README says Ladybird runs on Linux, macOS, Windows with WSL2 and many other Unix-like systems. The build page gives steps for Linux, macOS, Windows, FreeBSD and Android.

  • Linux: Debian and Ubuntu, Arch and Manjaro, Fedora, openSUSE and Void, each with its own package line, and a Nix development shell kept in the nix-environments repository
  • macOS: Xcode 15, or clang from Homebrew
  • Windows: WSL2 is the supported route, and a native Clang-CL build is experimental
  • FreeBSD: a package line on the build page
  • Android: Android Studio, or Gradle in UI/Android

Ladybird is built with one of two frontends. Android has its own Android UI, and every other platform uses Qt.

How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder, with each platform’s steps from the Ladybird build page. The main route is one script, Meta/ladybird.py, once your system’s packages are installed.

What you need first
NeedDetail
A computerLinux or macOS, or Windows with WSL2. FreeBSD and Android have their own steps
A C++23 compilerThe project’s CI uses gcc-16 and clang-22, and find_compiler.py names the minimum
QtVersion 6.10 or newer. Debian 13 ships Qt 6.8, and configuring against it fails
CMakeVersion 3.30 or newer in your PATH
RustA toolchain, which rustup installs
Build toolsnasm, ninja and more, listed for each system on the build page
  1. Install your system’s packages. The kit’s setup notes carry the package lines the build page gives.
  2. Clone the repository and go into it.
  3. Run the script. It builds a Release version of Ladybird, with its dependencies, and starts it.
  4. For a Debug version, set BUILD_PRESET to Debug before the same command.
git clone https://github.com/LadybirdBrowser/ladybird.git
cd ladybird
./Meta/ladybird.py run
BUILD_PRESET=Debug ./Meta/ladybird.py run

On macOS with clang from Homebrew, the build page gives this form:

CC=$(brew --prefix llvm)/bin/clang CXX=$(brew --prefix llvm)/bin/clang++ ./Meta/ladybird.py run

For the experimental Clang-CL build on Windows, the build page installs pkg-config for the vcpkg install with Chocolatey, then builds in a VS command prompt:

choco install pkgconfiglite -y
py Meta\ladybird.py build

How to use it

Once the build is done, the run command starts Ladybird. The same script has a few other commands.

The ladybird.py commands
CommandWhat it does
./Meta/ladybird.py runBuilds a Release version and starts Ladybird
BUILD_PRESET=Debug ./Meta/ladybird.py runBuilds a Debug version instead
./Meta/ladybird.py run --no-buildLaunches the build you already have, with no configuring or building
./Meta/ladybird.py run <executable_name>Runs another program, such as the JS REPL or the WebAssembly REPL
./Meta/ladybird.py gdb ladybirdStarts it in gdb

Put --no-build before the executable name. Anything after the name goes to the executable.

./Meta/ladybird.py run --no-build js --evaluate 'console.log(1 + 1)'

Example

A page looks wrong in Ladybird and fine in another browser. You save it as REDUCTION.html, open that file in Ladybird and check that the same problem happens. Then you cut the file down and reload after each cut. First turn scripting off in Ladybird’s Debug menu to see whether a script causes it. Then remove CSS rules and elements one at a time.

If the page did not come from a SingleFile copy, ISSUES.md says to put a base element into the document, like this, so relative images, style sheets and scripts load:

<base href="https://ladybird.org/">

The smallest file that still shows the problem goes up on a site such as CodePen, JSBin or JSFiddle. Its URL goes into the bug report form.

For newcomers and experts

If you are new. A browser engine is the part that loads a page and draws it. Ladybird writes its own instead of reusing the one in Chromium, WebKit or Firefox. Building it is the first test. Pick your system’s note, install the packages, and run the script. If the build fails, read the troubleshooting note before you ask. The project wants build problems in the build-problems channel on its Discord, not in GitHub issues.

For experts. Each tab runs in its own sandboxed WebContent process. Image decoding and network connections run out of process, in ImageDecoder and RequestServer. The code is split into libraries such as LibWeb, LibJS and LibWasm, and it uses the project’s own AK library instead of the C++ STL. The FAQ says features follow the spec algorithms step by step, with the spec text in comments and an AD-HOC: label on code that maps to no spec step.

For packaging, or for several configurations, a custom build directory avoids the script. The build page gives these lines, and a pool size for machines with little memory. Without the script, you may need to give a suitable C++ compiler with the CMAKE_C_COMPILER and CMAKE_CXX_COMPILER options.

cmake --preset Release -B MyBuildDir
cmake --build --preset Release MyBuildDir
ninja -C MyBuildDir run-ladybird
cmake --preset Release -B MyBuildDir -DLAGOM_LINK_POOL_SIZE=2

Good to know

Most of this entry is about a build that runs on your computer. A few things sit outside it.

  • Stage: the README says pre-alpha. The FAQ roadmap lists an alpha for Linux and macOS in 2026, a downloadable beta for Linux and macOS in 2027 and a stable release for general use in 2028
  • Dependencies: the build manages its third-party dependencies through vcpkg, and a failure in one of them can show up as a Ninja error
  • Contributions: CONTRIBUTING.md says only the project maintainers change the code, and it accepts no pull requests from anyone else. Bug reports, reductions and website testing are welcome
  • Windows: the FAQ says a native port is not a priority, so WSL2 is the way
  • Troubleshooting: one fix edits /etc/ssl/openssl.cnf for the whole system, so read it before you apply it
  • Money: the FAQ says the project is funded entirely by donations and sponsorships, and takes no default search deals or other user monetization
  • Not an endorsement: Mindket wrote these notes, and the Ladybird project did not make or endorse them
  • License: BSD 2-Clause, with the copyright held by the Ladybird developers

README and files

README

Ladybird: setup notes

This kit holds setup notes only. Mindket wrote them. Ladybird is made by the Ladybird developers and is built from source from their repository: https://github.com/LadybirdBrowser/ladybird

These notes are not made or endorsed by the Ladybird project or the Ladybird Browser Initiative.

License: BSD 2-Clause. Source: https://github.com/LadybirdBrowser/ladybird/blob/master/LICENSE (its copyright line reads "Copyright (c) 2018-present, the Ladybird developers."). The README says "Ladybird is licensed under a 2-clause BSD license."

What this is

Ladybird is a web browser with its own engine, built on web standards. Its README calls it "a truly independent web browser" and says it is in a pre-alpha state, "only suitable for use by developers". There is no installer and no download. Its FAQ says you have to build it from the sources yourself to try it. This kit gathers the build and run steps its docs give for each platform.

What the README says it is made of

A multi-process design: a main UI process, several WebContent renderer processes, an ImageDecoder process and a RequestServer process. Each tab has its own renderer process, sandboxed from the rest of the system. Image decoding and network connections happen out of process. At the moment many core library components are inherited from SerenityOS: LibWeb (the web rendering engine), LibJS (the JavaScript engine), LibWasm, LibCrypto and LibTLS, LibHTTP, LibGfx, LibUnicode, LibMedia, LibCore and LibIPC.

What you need first

  • A C++23 compiler, Qt6 development packages (6.10 or newer), nasm, CMake 3.30 or newer and a Rust toolchain. Exact versions and the per-system package lines are in the platform notes.
  • A Linux or macOS computer, or Windows with WSL2. FreeBSD and Android have their own notes.
  • Disk space: the build manages its third-party dependencies through vcpkg and builds them along the way. Its Android guide asks for 20 GB or more for SDKs, emulator images, Gradle dependencies and build artifacts.

The short route

The route the project's home page gives, "on many development machines", once the prerequisites for your system are installed:

git clone https://github.com/LadybirdBrowser/ladybird.git
cd ladybird
./Meta/ladybird.py run

All three lines are on the project's home page (https://ladybird.org), and the build instructions call the last one the simplest way to build and run. A release build is the default.

Notes in this kit

  • setup/linux.md: Debian and Ubuntu, Arch and Manjaro, Fedora, openSUSE, Void and Nix
  • setup/macos.md: Xcode or Homebrew's clang
  • setup/windows.md: WSL2 (supported) and Clang-CL (experimental)
  • setup/freebsd.md
  • setup/android.md: Android Studio
  • setup/building-and-running.md: ladybird.py, Debug builds, a custom build directory, limited memory, running by hand
  • setup/troubleshooting.md: the build and run problems the docs list
  • setup/filing-issues.md: how the project wants issues, reduced test cases and participation

Participation

The project's CONTRIBUTING.md says Ladybird is developed by a group of project maintainers who introduce all changes to the codebase, and that it does not accept pull requests from non-maintainers. Bug reports, reductions, website testing, standards discussion, security reports and technical feedback all help. See setup/filing-issues.md.

Sources

Files
README.md  4 KB
setup/android.md  2 KB
setup/building-and-running.md  4 KB
setup/filing-issues.md  5 KB
setup/freebsd.md  1 KB
setup/linux.md  6 KB
setup/macos.md  3 KB
setup/troubleshooting.md  4 KB
setup/windows.md  1 KB

9 files, 29 KB, downloaded as a zip.

What’s new

  • Version 2 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

trflynn89This Month in Ladybird – October 2026If you run into regressions like this, please report an issue on https://github.com/LadybirdBrowser/ladybird/issues. Alternatively, in the Help menu, there's a "Report website issue" button. That said, Google Maps is working well for me today. Widgets all appear, I can search, etc. Perhaps there's…GitHub Trending📦 LadybirdBrowser / ladybird ⭐ 64,856 (+42) 🗒 C++ Truly independent web browser2 likes@vintcessun如果不想让现代浏览器只剩几套既有内核,Ladybird 这条独立实现路线值得关注。 https://t.co/JoNcssctmk 它把 UI、逐标签渲染、图片解码和网络请求拆成多进程,渲染进程再用沙箱隔离,用 IPC 成本换故障边界与恶意内容防护。核心以 C++ 为主,部分库引入 Rust workspace,模块边界清晰。仍处于 pre-alpha,更适合研究内核架构和参与开发。quuxThis Month in Ladybird – October 2026It's very easy to build it yourself if you want to try it right now. https://github.com/LadybirdBrowser/ladybird/blob/master/Docu...AapoAlasWell, there we have it then: github.com/LadybirdBrow...1 like · 1 reply@TxtfromGitA new browser engine is being built from scratch. The Dev's is literally trying to kil Google. Ladybird is an independent, open-source web browser focused on building the browser engine, networking stack, and UI without relying on Chromium or WebKit.tech234aAndroid 17 is the first since 3.x to add new APIs without releasing to the AOSPCommit activity actually increased after they blocked external contributions in June: https://github.com/LadybirdBrowser/ladybird/graphs/commit-ac...AapoAlasgithub.com/LadybirdBrow...1 reply@the_osps• Multi-process architecture with sandboxed renderer processes • Out-of-process image decoding and network connections for security • Core libraries inherited from SerenityOS including LibWeb and LibJShoistbypetardThis Month in Ladybird – August 2026> And ooenbsd pioneered anoncvs didn't it? That's not really relevant. "anoncvs" was just the ability to retrieve source code from the project's repository without an account, as opposed to being forced to download a tarball. It didn't do anything more than ladybird's public github-hosted…EUVD Bot🚨 EUVD-2026-114394 📊 7.1/10 🏢 LadybirdBrowser 📝 Ladybird is a truly independent web browser. Prior to the c0d68bddf3e3616e5173835f0f4c155ee9700d91 commit, CSSStyleSheet.cssRules, insertRule(),... 🔗 https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-114394 #cybersecurity #infosec #cve #euvd@clxymox⚙️ ladybird ⭐ 63,944 stars **"Navigateur web indépendant, léger et sécurisé, propulsé par un moteur innovant !"** #GitHub https://t.co/TNWksXkRbk

Searched

More from Mindket

See all from Mindket

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Guizang PPT Skill

op7418 · Skill

Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…

New29.8k

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k

Similar in Developer

See all in Developer

buzz

block · Kit

Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…

New37.3k

plannotator

backnotprop · Kit

Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.

New10.5k

open-code-review

alibaba · Kit

Reviews Git changes with an AI agent that reads files and searches the codebase, then writes comments tied to exact lines. It suits developers who want automat…

New50.7k