Ladybird Browser
Joe Brockmeier (via Hacker News):
Ladybird is an open-source project aimed at building an independent web browser, rather than yet another browser based on Chrome. It is written in C++ and licensed under a two-clause BSD license. The effort began as part of the SerenityOS project, but developer Andreas Kling announced on June 3 that he was “forking” Ladybird as a separate project and stepping away from SerenityOS to focus his attention on the browser completely. Ladybird is not ready to replace Firefox or Chrome for regular use, but it is showing great promise.
Kling started working on SerenityOS in 2018 as a therapy project after completing a substance-abuse rehabilitation program. The SerenityOS name is a nod to the serenity prayer. Prior to working on the project, he had worked on WebKit-based browsers at Apple and Nokia. Eventually he made SerenityOS his full-time job, and funded the work through donations, sales of SerenityOS merchandise, and income from YouTube.
[…]
Comparing the README file in the standalone Ladybird repository against the README file in the SerenityOS repository, the goal has evolved from creating
a standards-compliant, independent web browser with no third-party dependenciesto developing an independent browserusing a novel engine based on web standards.
According to a post this week, the new 501(c)(3) non-profit organization, with initial directors being lead developer Andreas Kling and GitHub co-founder Chris Wanstrath, is funded entirely by sponsorships from those who “care about the open web” and will only accept “unrestricted donations.”
The software is open source on GitHub and uses the permissive BSD-2-Clause License which is means it is free software and approved by the open source initiative.
Chrome is eating the web. I have wanted to help fund a serious alternative browser for quite some time, and while Firefox remains the largest potential alternative, Mozilla has never let me. Since I can’t fund Firefox, I’m going to show there’s money in user-funded web browsers by funding Ladybird instead.
If you’ve done all that and implemented all the Web specs, you might still only be a less-Web-compatible Firefox or Chromium. What can you do better? My knowledge is a bit out of date, but here are a few guesses.
Go parallel from the ground up. You’ll get more and more E-cores, so you should try to use them. Parallel parsing and layout seem like endless opportunity.
Use a programming language that lets you write clean, fast, memory-safe, parallel data-race-free code — probably Rust.
We’ve been evaluating a number of C++ successor languages for @ladybirdbrowser, and the one best suited to our needs appears to be @SwiftLang 🪶
[…]
Something that matters to us a lot is OO. Web specs & browser internals tend to be highly object-oriented, and life is easier when you can model specs closely in your code. Swift has first-class OO support, in many ways even nicer than C++.
The Swift team is also investing heavily in C++ interop, which means there’s a real path to incremental adoption, not just gigantic rewrites.
Previously:
- Mozilla Changes Firefox Terms of Use
- Vlad Prelovac on Kagi Search and Orion
- The State of Mozilla
- Firefox at 20
- Swift 6
- A Vision for Using C++ From Swift
- The Danger of Sideloading Chromium
12 Comments RSS · Twitter · Mastodon
The world could really use another rendering engine. Unfortunately, Kling is the kind of person who uses “he” as a generic pronoun and then reacts badly when someone suggests using more inclusive language (https://github.com/SerenityOS/serenity/pull/6814). I won’t be rooting for him to succeed :-/
"He" has been the generic pronoun in English for many centuries. Perhaps one could understand that not everyone needs to get onto the latest bandwagon.
I'm rooting for him to succeed. A new browser is great.
"Why didn't Kelly fund a fork of Gecko"
Or fund people who contribute to Gecko.
I do hope this projects succeeds, but it seems borderline impossible. I would be surprised if the speed at which Google adds features to Blink didn't outpace the speed at which Ladybird can catch up. They're probably hitting some easy wins right now and seem to be catching up, but I doubt they will be able to sustain this.
Also, "this project is not an appropriate arena to advertise your personal politics" is a pretty funny thing to say for somebody who immediately advertises his personal politics in response to a simple change to make language more inclusive.
Why didn't Kelly fund a fork of Gecko, instead of starting from scratch?
Because the SerenityOS way is to reimplement everything from scratch.
Is Swift actually a good choice for them? I keep hearing about all the issues people have with it, though admittedly I don't have a lot of experience with it myself.
Also, I'm generally in favor of reinventing the wheel, especially when homogeneity with this particular kind of wheel could cause serious issues down the road. Having just two web rendering engines is not enough given how important the web is.
Also also, insisting that everyone you interact with, even indirectly, maintains ideological purity will in the long term only serve to hamper progress, genuine human interactions, and dare I say it, love. I know from direct experience how that kind of environment serves narcissistic behavior, because it allows people to disguise their selfish or malicious behavior with a façade of righteousness. Remember that there is much, much more to being a good person than strictly adhering to a specific set of rules. As much of an oversimplification as it is, there's a reason why the D&D morality system has a different axis for lawfulness, separate from good vs. evil.
@Bri: I have also been wondering about the decision to use Swift, particularly since Rust was originally developed to make systems that can easily hijack your computer ... such as web browsers.
This view might be tainted by the fact that my experience of Swift has not been as good as my experience of Rust.
Quoth Bri:
Is Swift actually a good choice for them?
Quoth Old Unix Geek:
I have also been wondering about the decision to use Swift, particularly since Rust was originally developed to make systems that can easily hijack your computer ... such as web browsers.
I thought this was a questionable decision (using Swift, a language with a notoriously buggy compiler, on platforms that aren’t just macOS) but in their defense on a totally separate topic they’re only switching to Swift 6, with, as I understand it, a new batch of Rust-tier safety guarantees.
Kling has said on a previous occasion that the Rust community is too toxic for his tastes, so there’s that. Having seen some of the barnacle-crusted underbelly of the Rust community, I believe him.
I’ve seen other people give Ladybird a test drive.
One simple page eats up a third of a gigabyte of RAM and uses 2% CPU even when the page is idle.
We’ve all seen “make it right, then make it fast” for Mac OS X 10.0, 10.1, and 10.2, but this is what that kind of strategy looks like in 2025.
One simple page eats up a third of a gigabyte of RAM and uses 2% CPU even when the page is idle
Oh dear.
Oh dear.
Right. I’m not surprised they’re not making binaries generally available for the general public to test and kick the tires on, at least not yet.
> Why didn't Kelly fund a fork of Gecko, instead of starting from scratch?
I think that having a third viable browser engine would be great for the web as an open platform, and hopefully it leads to Ladybird getting a seat at the table where web standards are proposed and discussed. An additional non-Google voice in that conversation seems very valuable, and funding Gecko forks doesn't do as much about that. It's also not clear to me how many maintainers of "Firefox alternatives" are prepared to shift to being browser engine developers.
I'm also hopeful that since Ladybird is starting from a "no user monetisation" policy, the Ladybird Browser Initiative can be a durable structure that aligns Ladybird's incentives with those of its users. From https://ladybird.org/posts/announcement/ :
> Unlike traditional business models that rely on monetizing the user, Ladybird is funded entirely by sponsorships and donations from companies and individuals who care about the open web. Our non-profit will not pursue corporate deals or revenue outside of unrestricted donations. The software and its source code will be available for free, forever.
It's a long shot, but it's one that I'm happy to fund. Some of my friends fund Servo or other forks, and I think that's great too. The more money that's available to develop and maintain alternative browser engines (without strings attached), the better IMHO.