Ladybird, a new browser engine, is being developed as part of Serenity OS to provide an alternative to dominant Chromium-based browsers and promote diversity.
Serenity OS started as a therapy project, evolved into a fully-fledged operating system, and fosters a strong sense of ownership and accountability through building everything from scratch.
Andreas Kling believes in the importance of multiple browser engines to prevent a monopoly, strengthen web standards, and give developers more options.
Deep dives
Ladybird: Building a New Browser Engine
Andreas Kling is leading the development of Ladybird, a new browser engine, as part of Serenity OS. By building a new engine from scratch, Kling aims to provide an alternative to the dominant Chromium-based browsers. Ladybird is based on web standards and aims to pass the extensive web platform tests to ensure compatibility. Kling believes that having multiple browser engines promotes diversity and prevents a single entity from controlling the entire web. Ladybird has received support and sponsorships from companies like Shopify, highlighting the interest in supporting independent browser engines.
The Therapeutic Origins of Serenity OS
Andreas Kling started working on Serenity OS as a form of therapy after going through a challenging period in his life. Serenity OS is a love letter to 90s user interfaces and is described as a custom Unix-like core. Kling initially intended to build a rich text display widget, but the project quickly evolved into a fully-fledged operating system. Serenity OS has gained a dedicated community of contributors, and Kling encourages them to explore and implement new features that interest them. The project's focus on building everything from scratch fosters a high level of accountability and a strong sense of ownership.
Advocating for More Browser Engine Diversity
Andreas Kling believes that having multiple browser engines is important to prevent a monopoly and promote innovation. He sees a lack of independent browser engines and aims to address that with projects like Ladybird. The dominance of Chromium-based browsers, controlled primarily by Google, raises concerns about the potential for limitations and control over the future of the web. Kling collaborates with the web standards community to ensure Ladybird adheres to standards and contributes to making them better. He emphasizes that more engines lead to stronger standards, prevent monoculture, and give developers more options.
Educational Value of Serenity OS and Ladybird
Serenity OS and Ladybird offer educational opportunities for individuals interested in systems programming and browser development. Serenity OS serves as a platform to learn about operating system internals, while Ladybird provides insights into the complexities of building a browser engine. Kling's focus on building from scratch and his dedication to simplicity make these projects more accessible for learning purposes. The projects involve active communities of contributors, providing opportunities for individuals to get involved, contribute, and expand their knowledge in these areas.
The Joy of Learning and Developing in Serenity OS
The speaker expresses their excitement about seeing young programmers join their project and quickly improve their skills in systems programming. The availability of infinite reading material and programming communities online has facilitated the rapid learning pace among these young programmers.
Sticking to Specifications and Building a Codebase for the Future
The speaker emphasizes the importance of sticking to specifications while developing the codebase for Serenity OS. By closely following the specifications, the team aims to make the code easier for new people to work on and ensure that the implementation can be updated easily as the specifications evolve. They discuss the challenges of rationally diffing the codebase with ever-changing specifications and express their desire for specifications to be more like programming languages that can be directly implemented.
This week we’re talking to Andreas Kling about SerenityOS and Ladybird. Andreas started SerenityOS as a means of therapy. It’s self-described as a love letter to “‘90s user interfaces with a custom Unix-like core.” Andreas previously worked at Nokia and later at Apple on the WebKit team, so he had an itch to do something along the lines of a browser, and that’s where Ladybird came from. We get into the details of compilers, OSs, browsers, web specifications, and the love of making software.
Changelog++ members get a bonus 5 minutes at the end of this episode and zero ads. Join today!
Sponsors:
Convex – Convex is a better type of backend — the full-stack TypeScript development platform that lets you replace your database, server functions, and glue code. Get started at convex.dev
Tailscale – Simple, secure networks for teams of any scale. Built on WireGuard.
Fly.io – The home of Changelog.com — Deploy your apps and databases close to your users. In minutes you can run your Ruby, Go, Node, Deno, Python, or Elixir app (and databases!) all over the world. No ops required. Learn more at fly.io/changelog and check out the speedrun in their docs.
Fastly – Our bandwidth partner. Fastly powers fast, secure, and scalable digital experiences. Move beyond your content delivery network to their powerful edge cloud platform. Learn more at fastly.com