Skip to main content Go to the homepage
State of the Browser

Ladybird:
Building a new browser from scratch

What does it take to build a web browser from scratch in 2025?

In this talk, I'll introduce Ladybird, a truly independent browser being built for the modern web.

Ladybird isn't a fork of some existing browser—it’s a ground-up implementation of the web platform, balancing compatibility with sustainability for a small team on a modest budget.

I'll share the story of how Ladybird came to life, the challenges we've faced along the way, and what's next for this ambitious project.

Transcript

Hi. All right. Is this on? Yes. Good morning, everybody. All right. It works, beautiful. All right. Hello. My name's Andreas Kling and I'm the chief browser nerd at the Ladybird initiative. It's nonprofit and we're building a new web browser, you can find me at awesomekling.com, I checked, it's less than 10K, we should be good.

I've been a browser nerd my entire life. I like to draw it this way. Starting in 2005, I worked in KHTML which became Web Kit, I got a job at Nokia working on acute web kit, I worked at Apple and the Safari browser. And since 2019, I've been working on this new thing called Ladybird.

But the origins of Ladybird are a little bit complicated and I thought, this would be a good time to introduce, introduce it to you, I suppose. So let me get into where it all comes from.

Because I left Apple in 2017. I -- was a little bit tired of the industry, I wanted to get out, try something else. And I thought I would, but instead I got deeper into substance abuse, because I've been addicted to hard drugs for ten years at that point.

And not having a job gave me a lot of time to develop that addiction. So, that just became my main focus and I lasted about nine months, I think, and then, my wife put me into rehab, thank you.

Shout outs for that. That was an amazing experience, three months in a state rehab in Sweden. And I came out a new person, it was beautiful. But now, I had nothing but time because I used to spend all of my time doing drugs or worrying about drugs or where do I get drugs?

And then, when you don't have that, you know, you've got to find something else to do. I've been a programmer my whole life. So, I thought now is the time to doodle. So I began just doodling with all kinds of things I wanted to try doing, I wanted to make a little kernel. Ever since I was a kid, you can actually find posts from me ten years old, asking people how to build an operating system.

And people trying to help me and me not understanding. But now, I was old enough to actually do it. I made a little kernel. It was fun. I made a little GUI toolkit for Linux. That was fun. And one day, I thought, hey if we put those together it's a graphical operating system. And I did that and called it serenity OS, after the serenity prayer I learned in the aforementioned rehab.

And I had a lot of fun with Serenity O, is. I started building little apps, file manager, with little icons and stuff. A tree view of -- it was really fun. If you've never built these things, I highly recommend just doing it. In web technology or whatever.

You can see the style of the system was sort of evolving this late 90s Mac OS Windows 2000 hybrid. Had a lot of fun with that, as well. And at the same time, I was also posting about this online, so sharing it on GitHub and making YouTube videos about it. And this community started forming around the project. And I think a bunch of us are here today, actually.

So, we'll get to that. So, another random thing that you have to do when you build a new operating system, you've got to put Doom on it. I'm glad everybody laughs with recognition here, because this is -- I would have thought this was more of a low-level nerd thing, but I see everyone appreciates Doom. So, we put Doom on it.

And another random thing we did was put a simple HTML viewer on it. So, I guess maybe you can see where this is going. But yeah. We made this little thing. I thought it would be neat to have rich text. And when we had some basic rich text, I thought, you know what, we should do that with CSS, that would make sense. We added CSS. And the more I worked on this, the more I just remembered how much I love browser development.

And, yeah, we just kept poking at it. In 2020, we added JavaScript and HTTPS to it, and that gave us access to the real web, you could say, not just the simple pages http only, no JavaScript. Here's us working on reddit late 2020, broken in a thousand ways. But you can see the basic gestalt of the website coming through. And in 2022, we passed. For those of you are too young to remember. Asset 3. But it was a big standards conformist test that came out in 2010 or something like that.

But, it was still very significant because we were the first new open source engine to pass this test in forever. Maybe even since they came out. And I think maybe this is also where people started taking us a little bit seriously. Not super seriously, but a little bit. And as you can see, we're still on SerenityOS. Just that sort of simple HTML viewer evolved.

But the next thing that happened -- changed things. So we poured into Linux, which meant that you no longer had to build SerenityOS and get into that to mess with the browser, you could do it on Linux. This super charged because now you didn't have to deal with the operating system. And this was really exciting.

And in 2023, the year half that, a plan starts to form, right? Until this point, we'd never had a plan. I used to joke with people, there is no plan. But I had to go back on that because this could become a real browser. This is starting to display real websites, passing real tests. But we're going to need to get organized if we want to make a real browser here.

So I'm brainstorming, talking to my wife, trying to figure out what to do, like, I've never done anything like this before. I guess I don't know that anybody has. But we figure out, we're going to test the waters by finding a big sponsor for this project. And then, trying to hire some help.

Because I can't do this alone with just volunteers. We're going to need to pay some people so they can focus on this. In 2023, I reach out to some of my GitHub sponsors and supporters, and I find two people who are willing to sponsor this project. I was very lucky to have them in my sponsor list because they were Toby from Shopify and Chris from GitHub. So I kind of lucked out with that.

And -- yeah, so they both decided to sponsor the project. And Chris and I started talking because he was really into the idea of a new browser. He was big supporter of FireFox when that first came out. And I think he wanted to relive those glory days a little bit. With a new browser, and fair enough. Those were cool days.

So, Chris and I, we also start work on creating a nonprofit for this because this was OK at a first attempt at organizing a little bit. Getting some sponsor money and hiring some people. But if we want to take more sponsor money and want to hire more people, we need a corporation. Chris and I start working on a nonprofit for this thing.

And before we can do anything with that, we have to fork. So in 2024, I forked off Ladybird from SerenityOS. And I wasn't working on the operating system at this point, but other people were. I put it in the hands of them to decide what to do with. And Ladybird is now its very own thing.

And then, we are free to say, we are now doing a nonprofit for Ladybird, we're going to build the real thing, and please, help.

So, the Ladybird Browser initiative is really 7 employees today. This is us. And, these are the people being paid to work on it. But we also have a huge community of volunteer contributors that work on this in their spare time or, you know, between classes at university or whatever.

And all of the people who are paid to work on it were once volunteer contributors. I've hired everybody from the pool of people. I think that's the most wholesome way to hire possible. And it's worked out beautifully. So we're happy with that.

But, yeah, so this is the Ladybird team, and we build Ladybird. What is Ladybird, then? We have to figure that out now. Because you've heard the story here, the concept of Ladybird sort of evolved from a simple HTML viewer. And at this point, we need to figure out, what are we doing? So this is what we've figured out so far.

We're building a new browser engine based on web standards, not based on Chromium, Firefox or Webkit or whatever, we're taking the standards and doing our best to implement them. We're not monetizing users, in any way.

This is uncharted territory for browsers. So we're not going to do any default search deals. We're not going to do cryptocurrencies or try to monetize user data, just sponsorships and donations, and then, we'll have to figure out how to build with that only.

The browser's independent. So the donations and sponsorships are no strings attached. You can give us money, but we'll put your logo on the website and say thank you very much. Really appreciate it. Thank you for believing in us. That's the end of that.

Amazingly, a lot of sponsors have signed up. So we're pretty well funded. At the moment, we have about two years of runway, I think, give or take, but we also have more sponsors waiting to come on. And very importantly, this is just a browser. There are no side quests here. We're not building any other apps. We're not looking for other revenue streams. We just want to build a browser and not get distracted.

So the goals for Ladybird the Browser, well, render the web, obviously, but I have to put it on there because it would be weird, otherwise. We want to implement the web specs and improve them as we go. As much as we can. I think we are the first people to do this from scratch in an open source way in a long time.

Most other projects have started from a base of something, but we started from an empty file. And we want to increase diversity in the browser engine space, I don't have to tell all of you that people are building a lot on Chromium these days, and we think that open standards need multiple competing implementations.
-- to really thrive. If you just have one or two implementations or just one implementation, that's not great. Probably preaching to the choir here, but I have to say it. And, my favorite thing, we want to find a sustainable way to develop browsers with limited funding.

Because of the constraints that we put on ourselves that we don't take any kind of funding from search or from cryptocurrencies, these kinds of things. We're never going to be billionaires, right? Or trillionaires like some of our competition. We have to find other ways, architectural ways but also social ways.

Which leads me to the final point. We want to nurture our organic developer community. So, with the kind of money that we will have, we will never be able to fix every website bug ourselves. It's not feasible. But if we can make the Ladybird development experience so accessible to new developers, then anybody can become a browser developer just to fix that one bug that bothers you on your favorite local website.

Like, you go to your local library website, the top books of the month not displaying correctly, you can figure that out and fix it in Ladybird, that's our hope. And we already have a large community. But we need to develop the resources so that we can empower that community to become browser developers. Even if just for a little while.

In terms of timeline, we are going extremely fast, in my opinion, some people tell me you're going excruciatingly slow because they want to try it. But last year, we started the nonprofit, in 2025, we're going as hard as we can, just trying to make something.

Next year, we're doing alpha on Linux and MacOS. Some people ask us about Windows, and we don't have the operating system to do all that in the alpha. So it's pretty aggressive. But you know, we've got to try, and we are on track, amazingly, so going to put something out next year.

So finally, some screenshots, right? Just to drive home the point, this is not a toy. This is not like silly little thing. This is a real browser that we're building. Displays real websites, even the state of the browser. Now, if you look closely, you will find a blemish on each of these screen shots. Not going to tell you what they are, but -- we're not perfect. And we're also very slow and we have stability issues.

But all of these things are improving continuously. And it's going pretty well. So, looking at raw numbers, our JavaScript engine, we're doing pretty well on compliance. This is from two weeks ago. Only SpiderMonkey beats us on compliance. If you give us JavaScript, we can generally run it. But a little harder is the web platform test.

So if anybody's not familiar, this is a joint test suite developed by all of the browser vendors. And it has about 2 million sub-tests, it's everything in the web platform is game. So there's, you know, stuff, lots and lots of CSS tests, but also DOM stuff, ancient XLT stuff, millions of encoding tests for Chinese and Japanese and such. Chrome is doing better than everybody else.

But Ladybird is number four. We're working our way up. And we are grinding hard on this stuff. The low hanging fruit is gone, but we are committed to catching up eventually, even if it kills us. We'll see. And for this crowd, we are compatible with Firefox developer tools. So we don't want to be a bother for web developers anymore than we already will. What's the first thing people say when they hear a new browser? Great. One more thing I have to test, right?

Well, at least it's one more set of developer tools you don't have to learn if you already know the Firefox ones. They can connect to our browser. This is incomplete, ongoing work. But when we ship something, this should be in very good shape. I think this is killer. Just a quick technical review of the project. It's a full stack browser in CSS.. He said it was about 35 million lines. Just to give you an idea of scale. We're very, very small. Smaller than the JavaScript engine in Safari, for example. Our whole browser.

It's written from scratch using spec driven development and we use third party development for stuff that isn't tech. Graphics, audio/visual, image formats, networking, low-level stuff. And it runs on Linux and MacOS. Now, when I say spec-driven development, you probably all seen the specs.

This is just as an example. Typical, check of DOM spec here, removing a child from a parent, this is what it looks like in our code. We have a link to the spec and every spec step is a comment and you can follow it and cross reference super easily. And we try to write as much as possible just to make the cross reference easy and allow new people to onboard really quickly.

We've heard from many developers from the other engines that our engine is super easy to get into. Because if you know the spec, you know where to go. And -- we even heard from somebody at the W3C that they like working our engine because of this. That is very nice.

And since we're at the London Web Standards, I have observations about web standards for you, now that we've been working for a while. They've gotten really good. Man. They've gotten so good. Like, I've been doing this since 2005. If any of you were around back then, specs were not that great. You needed to do considerable reverse engineering of IE, of Netscape, stuff back in those times to figure out what should the browser really do? But thanks to the effort of Ian Hickson, and everybody that came out with the CMS specs we have today. They're so good.

But there are still many bugs, blind spots, edge cases, and when you do a very faithful implementation like we're doing, we find a lot of these little issues, like little corners and things that people just haven't considered. And we're doing that we're doing that and reporting everything we find. And I think they appreciate it. The spec editors.

I hope so. There have been times when, perhaps, we've been a little bit detail oriented, let's say. In general, they seem to really appreciate it. And we're finding real bugs and improving the specs in real ways and everybody benefits, right? Everybody who builds browsers to have more correct, accurate specs to work off of. And we're putting down ladders behind us. The next people in the future that want to build a browser off of us, they'll have better spec to work off of, as well.

And something that people keep asking. Could this be a reference implementation of the web? Is such a thing even possible? I don't know. But I like the idea.

If that happens, that will be super cool. So, I'm running a little bit lower on time here, but I want to share with you a particular achievement we made this week. Because we spent the week here in London, me and a bunch of people from our team. And we had a little workshop and we wanted to order food. We went to Uber Eats and it crashed in the browser, and we had to fix a bunch of stuff, and we were eventually able to log in. And browsing some Greek food here.

And we were actually able to make an order and pay for it. Pretty cool! And not only that, we were able to watch the driver go. Yes. Now, this looks really good in the screen shot, in real life, it was flickering and -- made sure to take the screen shot in a good frame. But just imagine it was like this the whole time. But yeah, it eventually arrived correctly.

And we gave a great review. Obviously. And if we look back for a second, where we started with that simple HTML viewer, and where we are now, it is crazy, to me, how far we got. And I'm so proud of everybody who has worked on this together with me. And I think we have a real path here to building a real new browser. We're just going to keep hacking on it and keep making it the best thing that we can. And, I think it's going to be something beautiful.

So thank you for hearing that.

Transcript by Diane (in Iowa) from White Coat Captioning

About Andreas Kling

Andreas Kling

Andreas is an industry veteran (Apple, Nokia) who has been working on browsers since 2005. He's the creator and lead developer of the Ladybird browser, and serves as president of the nonprofit driving its development.