<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: andreas-kling</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/andreas-kling.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2026-02-23T18:52:53+00:00</updated><author><name>Simon Willison</name></author><entry><title>Ladybird adopts Rust, with help from AI</title><link href="https://simonwillison.net/2026/Feb/23/ladybird-adopts-rust/#atom-tag" rel="alternate"/><published>2026-02-23T18:52:53+00:00</published><updated>2026-02-23T18:52:53+00:00</updated><id>https://simonwillison.net/2026/Feb/23/ladybird-adopts-rust/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://ladybird.org/posts/adopting-rust/"&gt;Ladybird adopts Rust, with help from AI&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Really interesting case-study from Andreas Kling on advanced, sophisticated use of coding agents for ambitious coding projects with critical code. After a few years hoping Swift's platform support outside of the Apple ecosystem would mature they switched tracks to Rust their memory-safe language of choice, starting with an AI-assisted port of a critical library:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Our first target was &lt;strong&gt;LibJS&lt;/strong&gt; , Ladybird's JavaScript engine. The lexer, parser, AST, and bytecode generator are relatively self-contained and have extensive test coverage through &lt;a href="https://github.com/tc39/test262"&gt;test262&lt;/a&gt;, which made them a natural starting point.&lt;/p&gt;
&lt;p&gt;I used &lt;a href="https://docs.anthropic.com/en/docs/claude-code"&gt;Claude Code&lt;/a&gt; and &lt;a href="https://openai.com/codex/"&gt;Codex&lt;/a&gt; for the translation. This was human-directed, not autonomous code generation. I decided what to port, in what order, and what the Rust code should look like. It was hundreds of small prompts, steering the agents where things needed to go. [...]&lt;/p&gt;
&lt;p&gt;The requirement from the start was byte-for-byte identical output from both pipelines. The result was about 25,000 lines of Rust, and the entire port took about two weeks. The same work would have taken me multiple months to do by hand. We’ve verified that every AST produced by the Rust parser is identical to the C++ one, and all bytecode generated by the Rust compiler is identical to the C++ compiler’s output. Zero regressions across the board.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Having an existing conformance testing suite of the quality of &lt;code&gt;test262&lt;/code&gt; is a huge unlock for projects of this magnitude, and the ability to compare output with an existing trusted implementation makes agentic engineering much more of a safe bet.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=47120899"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rust"&gt;rust&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai-assisted-programming"&gt;ai-assisted-programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/andreas-kling"&gt;andreas-kling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ladybird"&gt;ladybird&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/coding-agents"&gt;coding-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/swift"&gt;swift&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/conformance-suites"&gt;conformance-suites&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/agentic-engineering"&gt;agentic-engineering&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="javascript"/><category term="ai"/><category term="rust"/><category term="generative-ai"/><category term="llms"/><category term="ai-assisted-programming"/><category term="andreas-kling"/><category term="ladybird"/><category term="coding-agents"/><category term="swift"/><category term="conformance-suites"/><category term="agentic-engineering"/></entry><entry><title>Ladybird set to adopt Swift</title><link href="https://simonwillison.net/2024/Aug/11/ladybird-set-to-adopt-swift/#atom-tag" rel="alternate"/><published>2024-08-11T18:38:57+00:00</published><updated>2024-08-11T18:38:57+00:00</updated><id>https://simonwillison.net/2024/Aug/11/ladybird-set-to-adopt-swift/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://twitter.com/awesomekling/status/1822236888188498031"&gt;Ladybird set to adopt Swift&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Andreas Kling on the Ladybird browser project's search for a memory-safe language to use in conjunction with their existing C++ codebase:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Over the last few months, I've asked a bunch of folks to pick some little part of our project and try rewriting it in the different languages we were evaluating. The feedback was very clear: everyone preferred Swift!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Andreas previously worked for Apple on Safari, but this was still a surprising result given the current relative lack of widely adopted open source Swift projects outside of the Apple ecosystem.&lt;/p&gt;
&lt;p&gt;This change is currently blocked on the upcoming Swift 6 release:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We aren't able to start using it just yet, as the current release of Swift ships with a version of Clang that's too old to grok our existing C++ codebase. But when Swift 6 comes out of beta this fall, we will begin using it!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Update 18th February 2026&lt;/strong&gt;: Ladybird decided &lt;a href="https://simonwillison.net/2026/Feb/19/ladybird/"&gt;to abandon Swift&lt;/a&gt;.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/c-plus-plus"&gt;c-plus-plus&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/andreas-kling"&gt;andreas-kling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ladybird"&gt;ladybird&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/swift"&gt;swift&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="c-plus-plus"/><category term="andreas-kling"/><category term="ladybird"/><category term="swift"/></entry><entry><title>Announcing the Ladybird Browser Initiative</title><link href="https://simonwillison.net/2024/Jul/1/the-ladybird-browser-initiative/#atom-tag" rel="alternate"/><published>2024-07-01T16:08:42+00:00</published><updated>2024-07-01T16:08:42+00:00</updated><id>https://simonwillison.net/2024/Jul/1/the-ladybird-browser-initiative/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://ladybird.org/announcement.html"&gt;Announcing the Ladybird Browser Initiative&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Andreas Kling's &lt;a href="https://awesomekling.github.io/Ladybird-a-new-cross-platform-browser-project/"&gt;Ladybird&lt;/a&gt; is a really exciting project: a from-scratch implementation of a web browser, initially built as part of the Serenity OS project, which aims to provide a completely independent, open source and fully standards compliant browser.&lt;/p&gt;
&lt;p&gt;Last month Andreas &lt;a href="https://awesomekling.substack.com/p/forking-ladybird-and-stepping-down-serenityos"&gt;forked Ladybird away from Serenity&lt;/a&gt;, recognizing that the potential impact of the browser project on its own was greater than as a component of that project. Crucially, Serenity OS avoids &lt;em&gt;any&lt;/em&gt; outside code - splitting out Ladybird allows Ladybird to add dependencies like libjpeg and ffmpeg. The &lt;a href="https://www.youtube.com/watch?v=cbw0KrMGHvc"&gt;Ladybird June update&lt;/a&gt; video talks through some of the dependencies they've been able to add since making that decision.&lt;/p&gt;
&lt;p&gt;The new Ladybird Browser Initiative puts some financial weight behind the project: it's a US 501(c)(3) non-profit &lt;a href="https://twitter.com/defunkt/status/1807779408092234134"&gt;initially funded with $1m from GitHub co-founder Chris Chris Wanstrath&lt;/a&gt;. The money is going on engineers: &lt;a href="https://twitter.com/awesomekling/status/1807804311696531575"&gt;Andreas says&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We are 4 full-time engineers today, and we'll be adding another 3 in the near future&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here's &lt;a href="https://www.youtube.com/watch?v=k9edTqPMX_k"&gt;a 2m28s video&lt;/a&gt; from Chris introducing the new foundation and talking about why this project is worth supporting.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/ladybirdbrowser/status/1807777318330339331"&gt;@ladybirdbrowser&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ffmpeg"&gt;ffmpeg&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/andreas-kling"&gt;andreas-kling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ladybird"&gt;ladybird&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="ffmpeg"/><category term="open-source"/><category term="andreas-kling"/><category term="ladybird"/></entry><entry><title>Quoting Andreas Kling</title><link href="https://simonwillison.net/2024/Jun/23/andreas-kling/#atom-tag" rel="alternate"/><published>2024-06-23T23:59:15+00:00</published><updated>2024-06-23T23:59:15+00:00</updated><id>https://simonwillison.net/2024/Jun/23/andreas-kling/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://twitter.com/awesomekling/status/1803412879816659243"&gt;&lt;p&gt;For some reason, many people still believe that browsers need to include non-standard hacks in HTML parsing to display the web correctly.&lt;/p&gt;
&lt;p&gt;In reality, the HTML parsing spec is exhaustively detailed. If you implement it as described, you will have a web-compatible parser.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://twitter.com/awesomekling/status/1803412879816659243"&gt;Andreas Kling&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/andreas-kling"&gt;andreas-kling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ladybird"&gt;ladybird&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="html"/><category term="web-standards"/><category term="andreas-kling"/><category term="ladybird"/></entry><entry><title>How we're building a browser when it's supposed to be impossible</title><link href="https://simonwillison.net/2023/Apr/11/how-were-building-a-browser/#atom-tag" rel="alternate"/><published>2023-04-11T10:18:45+00:00</published><updated>2023-04-11T10:18:45+00:00</updated><id>https://simonwillison.net/2023/Apr/11/how-were-building-a-browser/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://awesomekling.substack.com/p/how-were-building-a-browser-when"&gt;How we&amp;#x27;re building a browser when it&amp;#x27;s supposed to be impossible&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Andreas Kling: “The ECMAScript, HTML, and CSS specifications today are (for the most part) stellar technical documents whose algorithms can be implemented with considerably less effort and guesswork than in the past.” The Ladybird project is such an inspiration, and really demonstrates the enormous value of the work put in by web standards spec authors over the last twenty years.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=35521704"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-standards"&gt;web-standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/andreas-kling"&gt;andreas-kling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ladybird"&gt;ladybird&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="web-standards"/><category term="andreas-kling"/><category term="ladybird"/></entry><entry><title>Ladybird: A new cross-platform browser project</title><link href="https://simonwillison.net/2022/Sep/12/ladybird/#atom-tag" rel="alternate"/><published>2022-09-12T19:34:01+00:00</published><updated>2022-09-12T19:34:01+00:00</updated><id>https://simonwillison.net/2022/Sep/12/ladybird/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://awesomekling.github.io/Ladybird-a-new-cross-platform-browser-project/"&gt;Ladybird: A new cross-platform browser project&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Conventional wisdom is that building a new browser engine from scratch is impossible without enormous capital outlay and many people working together for many years. Andreas Kling has been disproving that for a while now with his SerenityOS from-scratch operating system project, which includes a brand new browser implemented in C++. Now Andreas is announcing his plans to extract that browser as Ladybird and make it run across multiple platforms. Andreas is a former WebKit engineer (at Nokia and then Apple) and really knows his stuff: Ladybird already passes the Acid3 test!

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=32814573"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/acid3"&gt;acid3&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webkit"&gt;webkit&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/andreas-kling"&gt;andreas-kling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ladybird"&gt;ladybird&lt;/a&gt;&lt;/p&gt;



</summary><category term="acid3"/><category term="browsers"/><category term="webkit"/><category term="andreas-kling"/><category term="ladybird"/></entry></feed>