{"id":46973,"date":"2025-03-06T16:35:30","date_gmt":"2025-03-06T21:35:30","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=46973"},"modified":"2025-03-06T16:35:30","modified_gmt":"2025-03-06T21:35:30","slug":"ladybird-browser","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2025\/03\/06\/ladybird-browser\/","title":{"rendered":"Ladybird Browser"},"content":{"rendered":"<p><a href=\"https:\/\/lwn.net\/Articles\/976822\/\">Joe Brockmeier<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=40746804\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/lwn.net\/Articles\/976822\/\"><p><a href=\"https:\/\/ladybird.dev\/\">Ladybird<\/a> is an open-source\nproject aimed at building an independent web browser, rather than\nyet another browser based on Chrome. It is written in C++ and licensed under a\ntwo-clause BSD license. The effort \nbegan as part of the <a href=\"https:\/\/www.serenityos.org\/\">SerenityOS<\/a> project, but\ndeveloper Andreas Kling <a href=\"https:\/\/awesomekling.substack.com\/p\/forking-ladybird-and-stepping-down-serenityos\">announced<\/a>\non June 3 that he was &ldquo;forking&rdquo; Ladybird as a separate project and stepping away from\nSerenityOS to focus his attention on the browser completely. Ladybird\nis not ready to replace Firefox or Chrome for regular use, but it is showing\ngreat promise.<\/p><p>Kling started working on SerenityOS in 2018 as a therapy project\nafter completing a substance-abuse rehabilitation program. The SerenityOS name is a\nnod to the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Serenity_Prayer\">serenity\nprayer<\/a>. Prior to working on the project, he had worked on\nWebKit-based browsers at Apple and Nokia. Eventually he <a href=\"https:\/\/awesomekling.github.io\/I-quit-my-job-to-focus-on-SerenityOS-full-time\/\">made\nSerenityOS his full-time job<\/a>, and funded the work through\ndonations, sales of SerenityOS merchandise, and income from\nYouTube.<\/p><p>[&#8230;]<\/p><p>Comparing the <a href=\"https:\/\/github.com\/LadybirdWebBrowser\/ladybird\/blob\/master\/README.md\">README<\/a> file in the standalone Ladybird repository\nagainst the <a href=\"https:\/\/github.com\/SerenityOS\/serenity\/blob\/master\/Ladybird\/README.md\">README<\/a>\nfile in the SerenityOS repository, the goal has\nevolved from creating <q>a standards-compliant, independent web browser with\nno third-party dependencies<\/q> to developing an independent browser <q>using a\nnovel engine based on web standards<\/q>.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/devclass.com\/2024\/07\/03\/ladybird-web-browser-project-now-funded-by-github-co-founder-promises-no-code-from-other-browsers\/\">Tim Anderson<\/a> (<a href=\"https:\/\/news.ycombinator.com\/item?id=40870366\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/devclass.com\/2024\/07\/03\/ladybird-web-browser-project-now-funded-by-github-co-founder-promises-no-code-from-other-browsers\/\"><p>According to a <a href=\"https:\/\/ladybird.org\/announcement.html\">post<\/a> 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 &ldquo;care about the open web&rdquo; and will only accept &ldquo;unrestricted donations.&rdquo; <\/p><p>The software is <a href=\"https:\/\/github.com\/LadybirdBrowser\">open source on GitHub<\/a> and uses the permissive BSD-2-Clause License which is means it is free software and approved by the open source initiative.<\/p><\/blockquote>\n\n<p><a href=\"http:\/\/jackkelly.name\/blog\/archives\/2024\/07\/06\/im_funding_ladybird_because_i_cant_fund_firefox\/\">Jack Kelly<\/a> (<a href=\"https:\/\/news.ycombinator.com\/item?id=40900648\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"http:\/\/jackkelly.name\/blog\/archives\/2024\/07\/06\/im_funding_ladybird_because_i_cant_fund_firefox\/\">\n<p>Chrome is eating the web. I have wanted to\nhelp fund a serious alternative browser for quite some time, and while\nFirefox remains the largest potential alternative, Mozilla has never let\nme. Since I can&rsquo;t fund Firefox, I&rsquo;m going to show there&rsquo;s money in\nuser-funded web browsers by <a href=\"https:\/\/donorbox.org\/ladybird\">funding Ladybird instead<\/a>.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/robert.ocallahan.org\/2024\/06\/browser-engine.html\">Robert O&rsquo;Callahan<\/a>:<\/p>\n<blockquote cite=\"https:\/\/robert.ocallahan.org\/2024\/06\/browser-engine.html\"><p>If you&rsquo;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.<\/p><p>Go parallel from the ground up. You&rsquo;ll get more and more E-cores, so you should try to use them. Parallel parsing and layout seem like endless opportunity.<\/p><p>Use a programming language that lets you write clean, fast, memory-safe, parallel data-race-free code &mdash; probably Rust.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/x.com\/awesomekling\/status\/1822236888188498031\">Andreas Kling<\/a> (<a href=\"https:\/\/news.ycombinator.com\/item?id=41208836\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/x.com\/awesomekling\/status\/1822236888188498031\"><p>We&rsquo;ve been evaluating a number of C++ successor languages for \n@ladybirdbrowser, and the one best suited to our needs appears to be \n@SwiftLang &#x1FAB6;<\/p><p>[&#8230;]<\/p><p>Something that matters to us a lot is OO. Web specs &amp; 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++.<\/p><p>The Swift team is also investing heavily in C++ interop, which means there&rsquo;s a <em>real<\/em> path to incremental adoption, not just gigantic rewrites.<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2025\/02\/28\/mozilla-changes-firefox-terms-of-use\/\">Mozilla Changes Firefox Terms of Use<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2024\/12\/27\/vlad-prelovac-on-kagi-search-and-orion\/\">Vlad Prelovac on Kagi Search and Orion<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2024\/11\/15\/the-state-of-mozilla\/\">The State of Mozilla<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2024\/11\/15\/firefox-at-20\/\">Firefox at 20<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2024\/09\/19\/swift-6\/\">Swift 6<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/06\/02\/a-vision-for-using-c-from-swift\/\">A Vision for Using C++ From Swift<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/02\/07\/the-danger-of-sideloading-chromium\/\">The Danger of Sideloading Chromium<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2025-03-06T21:35:34Z","apple_news_api_id":"921a90ce-37fd-4680-9149-abe3b95e76af","apple_news_api_modified_at":"2025-03-06T21:35:34Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/AkhqQzjf9RoCRSavjuV52rw","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[326,2737,30,32,2598,74,901,2735],"class_list":["post-46973","post","type-post","status-publish","format-standard","hentry","category-technology","tag-c-plus-plus","tag-ladybird","tag-mac","tag-macapp","tag-macos-15-sequoia","tag-opensource","tag-swift-programming-language","tag-web-browser"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/46973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=46973"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/46973\/revisions"}],"predecessor-version":[{"id":46974,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/46973\/revisions\/46974"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=46973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=46973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=46973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}