Ladybird seems to have received a nice boost in momentum in the past two years. If you've ever watched one of Andreas videos on YouTube you'll find he's incredibly driven and knowledgeable in this area. I can imagine someone like him would go from being a "10x programmer" to a "100x programmer" with AI assistance. I am not entirely sure to what degree AI is being leveraged to speed up development, but I am indeed happier I might be able to ditch FF and begin using their browser soon.
> Ladybird seems to have received a nice boost in momentum in the past two years.
I'm still very interested in the project, and I can empathize (though not agree) with the reasoning, but something is off ever since they announced the decision to close the project to outside contributions. It's still Open Source, but only a self-selected group of maintainers gets to write and merge code, at least for the time being.
Somehow that's not the "a new independent Open Source browser" future I thought we had signed up for with our attention.
Again, I understand all the arguments for why at this particular time they feel that they cannot afford the energgy expense required need to run a community.
> It's still Open Source, but only a self-selected group of maintainers gets to write and merge code, at least for the time being.
That is the way the BSDs are developed and they're free software. If you want to you can pull the code and modify whatever you want. Let them get the thing up and running first, then see how the project handles external contributions. If they somehow fail to see the brilliance of some external contribution a fork will soon take over from where they dug themselves in, something which has happened many times over in free software land: Firefox (took over from the Mozilla Suite), Libreoffice (took over from Openoffice), Nextcloud (took over from Owncloud), egcs (took over from gcc, later became the main gcc branch), etc.
Don't BSDs accept new contributors and patches tho? A long time ago I worked in the freebsd documentation project (translating th handbook) and it was pretty easy to join the core group. And ooenbsd pioneered anoncvs didn't it?
For ladybird it seems the group is closed to outsiders.
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 repository[1] to facilitate contributions.
Think of ladybird's github issues like the openbsd mailing lists. If you start submitting good issues with patches there, and you do it often enough that they would rather let you merge your patches yourself, there's a high likelihood you'll no longer be an outsider. (I don't know this from personal experience with ladybird, but it's the vibe I get from their posts about the matter.)
Ladybird [0]: "We will no longer accept public pull requests. From now on, code changes to the Ladybird codebase will only be introduced by project maintainers. [...] There will not be a separate process for submitting patches by other means."
FreeBSD [1]: "So you want to contribute to FreeBSD? That is great! FreeBSD relies on the contributions of its user base to survive. Your contributions are not only appreciated, they are vital to FreeBSD’s continued growth. [...] If you are submitting a simple patch to the src repo, please consider submitting it to the project’s GitHub mirror as a pull request."
The flood of low effort AI-contributions makes accepting anonymous contributions impractical nowadays. They'd waste hours reviewing things of no value. I know because it happened to several of my moderately successful projects. At some point I had to stop caring. I now only review the PR if the message is a single unformatted paragraph with few emojis, I find this to be a good signal that it was made by a human and not an agent (the code could still be LLM but a human cared enough to write their own message). I'm sure I will miss genuinely good and valuable contributions, but the signal-to-noise ratio is just too low.
It would be 100x worse for them because who wouldn't want to have a browser in their contribution portfolio when seeking a job?
A lot of folks might not want to hear it, but realistically some there's going to have to be a cultural realization that machine-generated low effort slop is not any more desired or helpful than human-generated low effort slop.
That's not an outright rejection of LLM-assisted code, it just means that a real person needs to be awake, at the wheel, and just as significant of a contributor. Literally anybody can point Claude at a repo and say "add X feature" or "fix Y bug" and so PRs that do that carry no value.
The value of a feature or a bugfix is not calculated from the effort required but from the need or desire for said feature or bugfix. So whether or not the barrier to entry has been lowered by llm's is irrelevant. What matters as to it's value is the result.
That might be true of the raw, unknowable "true" value of the thing, but that's not the same as what people are willing to pay for a thing.
When one evaluates a purchase, implicit in that evaluation is the option to do the work one's self. If the price you are offering a thing is more than the cost of doing it myself, then I will not buy from you.
LLM coding proponents keep saying that it reduces the cost of development to near-zero. We keep hearing about all the "things we wouldn't have done before because it was just too expensive to get people to do it."
If this is true, any day now, the customers and clients and consumers are going to catch wise and start doing it for themselves. I mean, it's been almost a year since LLMs supposedly "10x'd" everyone's productivity. I'm still waiting to see where all this singularity is, so I doubt it actually is true. But it doesn't mean you're going to achieve ungodly margins on your software sales, especially when we're talking about open source software. Value absolutely does have a component that is the cost of the inputs.
Linux had an existing population of Unix engineers who had a strong incentive to build something that could replace the Unix systems they were paying for.
Ladybird doesn’t replace something developers are already paying for, so the incentive to make substantial, high-quality contributions is much weaker.
> Again, I understand all the arguments for why at this particular time they feel that they cannot afford the energy expense required need to run a community. First-hand, actually, because I am involved with running a very large one myself.
This is a problem brought on by AI, and does not seem fair to imply it's Ladybird's problem to solve.
Writing a browser/engine from scratch is a massively ambitious undertaking by itself. I don't expect them to also solve the tangential AI problem that every other open source project is contending with. Others can step up for that one.
I agree with your concerns but also think that a new viable browser engine will be such a benefit to the health of the open web that I'm willing to overlook such irregularities, at least for now. sqlite doesn't accept contributions either and it's done well for itself, and if Ladybird ends up going sour there's always the possibility of a fork. This is similar to my stance towards Firefox: despite the actions of Mozilla Corp, having at least one non-Blink engine is too important, and for friends and family that I care about, working ad-blockers are essential so there's no practical alternative.
Multiple browser engines reimplementing the same things fragments engineering resources and blink based browsers do have working as blockers. In fact ladybird uses the same adblocker as Brave, which is blink based.
Free and open-source software licenses never promised that any given project would absolutely accept code contributions from the general public. You're as free to exercise the Four Freedoms with Ladybird as you are with Firefox or Chromium, including the freedom to fork it; and your practical ability to get your own change merged into upstream Ladybird is probably about as good as it is for Firefox/Chromium, too.
Feels like the old "browser wars" days again. Between AI productivity, and Google losing the grace to bloat the web specs, I wouldn't be surprised if it starts to take market share away from other browsers as soon as it's stable.
Going above 5%, OTOH, I would be shocked to ever see happen, for two reasons.
1) Mass-market adoption requires working well on an enormous long tail, which is difficult without a large team.
2) The primary driver of playing at that size is mass marketing/distribution, which requires $$$. Engineering a great product is necessary, but not sufficient.
My perspective on this is informed by being on Google Chrome from inception to 2025. Chrome from near the beginning was well-engineered and had three compelling-according-to-user-research advantages over the IE of 2008 (speed, security, and not being made by Microsoft), but mass adoption depended on a large number of non-engineering factors, of which marketing/distribution was (to a then-mid-20s software engineer) the most surprising one. I didn't believe that was what made the difference in which browser most people used; I was very wrong. Techies are not the leading-edge trendsetters for the masses we sometimes believe we are.
IMO, taking mass market share in the future will require either a compelling-to-users product coupled with at least a couple hundred million dollars in marketing and distribution budget, or else something that is completely unlike web browsers of the past (maybe there's something that replaces the web entirely). No one has done the former since Chrome launched; the closest people have come to the latter thus far is things like Dia/Atlas that try to reimagine workflows in an AI context, and I think the market has not found those to be sufficiently different+compelling.
Yeah basically everybody I know who's non-technical switched to Chrome when Google started advertising it on google.com (This was back when nontechnical users would start every search query by going to google.com). "Oh this says it's better and faster, let me download it". Google also paid shareware/freeware developers to bundle Chrome with their installers if you didn't uncheck some option in the "expert install" mode. Chrome would then launch and prompt the user to set it as the default browser. This is somewhat questionable, but this sort of developer usually pushes some sort of malware in their installers so I suppose Chrome was an improvement on that.
The distribution opt-outs really bugged me at the time, and I went and talked to the marketing team. Surprisingly, users who got Chrome via one of those opt-out deals used it at rates/in ways statistically indistinguishable from "organic" users (i.e. users who manually downloaded Chrome and installed it). This was a pretty strong counterargument to the idea that we were pushing something unhelpful on people who didn't want it -- they seemed to "want it" as much as the people who'd bothered to go find it manually.
I still didn't (and don't) love the practice, but it called in to question a lot of my assumptions about what people knew about software, why they used what they did, how they found it, etc.
Part of me wonders in a world with evergreen browsers if that long tail won’t simply shrink as time goes on.
I have yet to run into Java applets or Internet Explorer required situations in years. As far back as 2016 I’d occasionally find myself having to deal with both of these things. Still rare in 2016 but it was there.
Eventually I never saw it again.
That said, I’m not sure what gaps exist that I don’t perceive either, so I could be wrong and not know it
I wonder if another path to “success” for ladybird could be rather than end users downloading it for the main browser, if it gains enough dev interest, we could get some kind of competitor to electron and it would end up getting bundled in that way as a lighter weight runtime to chromium for that use case.
You never used a download manager like DownThemAll or GetBot back in the day?
As far as fragmentation goes, I think both Firefox and Chrome derivatives figure out the final file size in advance, pre-allocate a temporary file that long and put data in it as it arrives. Completing the download is a rename operation or a no-op.
who the f comes up with these web pages gray on black are fing unreadable add a light mode button also why are they targeting so niche horrible os like linux and macos that no one uses release it on windows that's what real man use
On a serious note, it would be nice if in the far far future, once the browser is very stable, they release a windows binary since I do sometimes still use Windows 11 for moments when it is needed and it would be a shame to then temporarily still have to switch to Edge e.t.c. instead of being able to use Ladybird there too.
People are all flawed. You can find faults in everyone. Overlooking these flaws is okay to a large number of folks as the product itself is amazing. The fact is that you're likely ignorant to the large number of products and services you use produced by folks with similar flaws.
My suggestion is to not try to idolize individuals. Products should be judged independent of the individuals involved in creating them, especially when many individuals participate in their creation.
"Faults" is covering a pretty wide range there. Let's get specific.
Are we talking about "so-and-so was rude at a conference", or are we talking about "so-and-so praises white supremacists and alt-right figures"? Some faults a little more tolerable than others.
> - how many people in a team do you need and how long would it take to write a browser engine from scratch
The boring not-really-an-answer is "it depends on which sites you want to render properly": a browser capable of rendering Hacker News is a perfectly fine one-person project (which the book would get you to), supporting things like banking and online mail requires not just developers but also people willing to "dogfood" test it as their daily browser
> how is an actual html, css and javascript specification implemented at the code level? are we painting an empty canvas or is it more complicated
It's more complicated, but conceptually it's painting into an empty canvas
> how is backward compatibility implemented?
> what test cases do you consider for making something like this? how do you determine if you have handled all the outliers or not?
The ~2 million Web Platform Tests https://github.com/web-platform-tests/wpt. They also handle most of the backwards compatibility. The rest is engine developers manually comparing against each other's engines.
> is all the code written in c++ or is it rust these days?
There's still a lot of C++, but new code is increasingly Rust. To what degree varies by engine: Servo (and Blitz) are almost entirely Rust. Ladybird was 100% C++ in February, but is now 25% Rust. Firefox has significant and actively developed core components in Rust, but isn't actively converting more core modules. Chromium doesn't have any core components in Rust yet, but has invested heavily in converting foundational dependencies like FreeType and HarfBuzz to Rust. Safari is the outlier, I believe it doesn't use any Rust yet.
> how many people in a team do you need and how long would it take to write a browser engine from scratch
I've heard estimates that Chrome has a team of >1000, Firefox 500-800, Safari 100-200, Servo / Ladybird are more like 5-10. I've been building Blitz by myself for ~3 years. Something like 3-5 years is probably a minimum if you're truly building from scratch unless you have a really large team backing it, and depending on your success criteria.
> how is mobile vs desktop handled at the browser engine code level?
There are actually surprisingly few differences beyond touch input and screen size handling.
I'm honestly relieved to see that I'm not the only one to test optimized/newer implementations against less optimized/older implementations. It's what I came up with after thinking about it for quite a while and I've been wondering why so little other software seems to do that. In my case, it's about serialization code. My test compare self-reported reader / writer states and serialized data.
Ladybird goes further by also running the engines in parallel in debug builds during normal use. They have a way to extract test cases from any bugs found that way.
57 comments
[ 0.21 ms ] story [ 5.5 ms ] threadLadybird seems to have received a nice boost in momentum in the past two years. If you've ever watched one of Andreas videos on YouTube you'll find he's incredibly driven and knowledgeable in this area. I can imagine someone like him would go from being a "10x programmer" to a "100x programmer" with AI assistance. I am not entirely sure to what degree AI is being leveraged to speed up development, but I am indeed happier I might be able to ditch FF and begin using their browser soon.
I'm still very interested in the project, and I can empathize (though not agree) with the reasoning, but something is off ever since they announced the decision to close the project to outside contributions. It's still Open Source, but only a self-selected group of maintainers gets to write and merge code, at least for the time being.
Somehow that's not the "a new independent Open Source browser" future I thought we had signed up for with our attention.
Again, I understand all the arguments for why at this particular time they feel that they cannot afford the energgy expense required need to run a community.
That is the way the BSDs are developed and they're free software. If you want to you can pull the code and modify whatever you want. Let them get the thing up and running first, then see how the project handles external contributions. If they somehow fail to see the brilliance of some external contribution a fork will soon take over from where they dug themselves in, something which has happened many times over in free software land: Firefox (took over from the Mozilla Suite), Libreoffice (took over from Openoffice), Nextcloud (took over from Owncloud), egcs (took over from gcc, later became the main gcc branch), etc.
For ladybird it seems the group is closed to outsiders.
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 repository[1] to facilitate contributions.
Think of ladybird's github issues like the openbsd mailing lists. If you start submitting good issues with patches there, and you do it often enough that they would rather let you merge your patches yourself, there's a high likelihood you'll no longer be an outsider. (I don't know this from personal experience with ladybird, but it's the vibe I get from their posts about the matter.)
[1](https://github.com/LadybirdBrowser/ladybirdP)
Ladybird [0]: "We will no longer accept public pull requests. From now on, code changes to the Ladybird codebase will only be introduced by project maintainers. [...] There will not be a separate process for submitting patches by other means."
FreeBSD [1]: "So you want to contribute to FreeBSD? That is great! FreeBSD relies on the contributions of its user base to survive. Your contributions are not only appreciated, they are vital to FreeBSD’s continued growth. [...] If you are submitting a simple patch to the src repo, please consider submitting it to the project’s GitHub mirror as a pull request."
[0] https://ladybird.org/posts/changing-how-we-develop-ladybird/
[1] https://docs.freebsd.org/en/articles/contributing/
It would be 100x worse for them because who wouldn't want to have a browser in their contribution portfolio when seeking a job?
That's not an outright rejection of LLM-assisted code, it just means that a real person needs to be awake, at the wheel, and just as significant of a contributor. Literally anybody can point Claude at a repo and say "add X feature" or "fix Y bug" and so PRs that do that carry no value.
When one evaluates a purchase, implicit in that evaluation is the option to do the work one's self. If the price you are offering a thing is more than the cost of doing it myself, then I will not buy from you.
LLM coding proponents keep saying that it reduces the cost of development to near-zero. We keep hearing about all the "things we wouldn't have done before because it was just too expensive to get people to do it."
If this is true, any day now, the customers and clients and consumers are going to catch wise and start doing it for themselves. I mean, it's been almost a year since LLMs supposedly "10x'd" everyone's productivity. I'm still waiting to see where all this singularity is, so I doubt it actually is true. But it doesn't mean you're going to achieve ungodly margins on your software sales, especially when we're talking about open source software. Value absolutely does have a component that is the cost of the inputs.
Ladybird doesn’t replace something developers are already paying for, so the incentive to make substantial, high-quality contributions is much weaker.
This is a problem brought on by AI, and does not seem fair to imply it's Ladybird's problem to solve.
Writing a browser/engine from scratch is a massively ambitious undertaking by itself. I don't expect them to also solve the tangential AI problem that every other open source project is contending with. Others can step up for that one.
Going above 5%, OTOH, I would be shocked to ever see happen, for two reasons. 1) Mass-market adoption requires working well on an enormous long tail, which is difficult without a large team. 2) The primary driver of playing at that size is mass marketing/distribution, which requires $$$. Engineering a great product is necessary, but not sufficient.
My perspective on this is informed by being on Google Chrome from inception to 2025. Chrome from near the beginning was well-engineered and had three compelling-according-to-user-research advantages over the IE of 2008 (speed, security, and not being made by Microsoft), but mass adoption depended on a large number of non-engineering factors, of which marketing/distribution was (to a then-mid-20s software engineer) the most surprising one. I didn't believe that was what made the difference in which browser most people used; I was very wrong. Techies are not the leading-edge trendsetters for the masses we sometimes believe we are.
IMO, taking mass market share in the future will require either a compelling-to-users product coupled with at least a couple hundred million dollars in marketing and distribution budget, or else something that is completely unlike web browsers of the past (maybe there's something that replaces the web entirely). No one has done the former since Chrome launched; the closest people have come to the latter thus far is things like Dia/Atlas that try to reimagine workflows in an AI context, and I think the market has not found those to be sufficiently different+compelling.
I still didn't (and don't) love the practice, but it called in to question a lot of my assumptions about what people knew about software, why they used what they did, how they found it, etc.
I have yet to run into Java applets or Internet Explorer required situations in years. As far back as 2016 I’d occasionally find myself having to deal with both of these things. Still rare in 2016 but it was there.
Eventually I never saw it again.
That said, I’m not sure what gaps exist that I don’t perceive either, so I could be wrong and not know it
I hope you can turn that off. It fragments the file and puts unnecessary load on the server.
https://www.usenix.org/conference/fast24/presentation/jun
In some situations it's the only way to get a decent download speed.
As far as fragmentation goes, I think both Firefox and Chrome derivatives figure out the final file size in advance, pre-allocate a temporary file that long and put data in it as it arrives. Completing the download is a rename operation or a no-op.
You praise DHH and Charlie Kirk, your moral compass is broken.
Are we talking about "so-and-so was rude at a conference", or are we talking about "so-and-so praises white supremacists and alt-right figures"? Some faults a little more tolerable than others.
- what is the process of making a browser engine? what does the requirements look like
- how is an actual html, css and javascript speification implemented at the code level? are we painting an empty canvas or is it more complicated
- how is backward compatibility implemented?
- is all the code written in c++ or is it rust these days?
- how many people in a team do you need and how long would it take to write a browser engine from scratch
- what test cases do you consider for making something like this? how do you determine if you have handled all the outliers or not?
- how is mobile vs desktop handled at the browser engine code level?
> - how many people in a team do you need and how long would it take to write a browser engine from scratch
The boring not-really-an-answer is "it depends on which sites you want to render properly": a browser capable of rendering Hacker News is a perfectly fine one-person project (which the book would get you to), supporting things like banking and online mail requires not just developers but also people willing to "dogfood" test it as their daily browser
I second https://browser.engineering as a resource on that. Also consider dropping into the Servo Zulip.
> how is an actual html, css and javascript specification implemented at the code level? are we painting an empty canvas or is it more complicated
It's more complicated, but conceptually it's painting into an empty canvas
> how is backward compatibility implemented? > what test cases do you consider for making something like this? how do you determine if you have handled all the outliers or not?
The ~2 million Web Platform Tests https://github.com/web-platform-tests/wpt. They also handle most of the backwards compatibility. The rest is engine developers manually comparing against each other's engines.
> is all the code written in c++ or is it rust these days?
There's still a lot of C++, but new code is increasingly Rust. To what degree varies by engine: Servo (and Blitz) are almost entirely Rust. Ladybird was 100% C++ in February, but is now 25% Rust. Firefox has significant and actively developed core components in Rust, but isn't actively converting more core modules. Chromium doesn't have any core components in Rust yet, but has invested heavily in converting foundational dependencies like FreeType and HarfBuzz to Rust. Safari is the outlier, I believe it doesn't use any Rust yet.
> how many people in a team do you need and how long would it take to write a browser engine from scratch
I've heard estimates that Chrome has a team of >1000, Firefox 500-800, Safari 100-200, Servo / Ladybird are more like 5-10. I've been building Blitz by myself for ~3 years. Something like 3-5 years is probably a minimum if you're truly building from scratch unless you have a really large team backing it, and depending on your success criteria.
> how is mobile vs desktop handled at the browser engine code level?
There are actually surprisingly few differences beyond touch input and screen size handling.
Ladybird goes further by also running the engines in parallel in debug builds during normal use. They have a way to extract test cases from any bugs found that way.