Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    M

    Matt Brubeck

    limpet.net · Personal blog · on HN since 2009

    Matt Brubeck, a Mozilla engineer, writes about Rust, browser internals, and Firefox for Android, including a toy browser engine series.

    Visit blogHN submissions
    Languages & CompilersWeb DevelopmentProgramming
    What HN says

    HN commenters recommend his toy layout engine series for anyone curious about browsers and cite his posts on Rust borrowing and Fennec's architecture.

    Stats for nerds
    28HN people shared it
    37linked in comments
    1.3Kstory points
    Oct 2025last shared
    2010people per year2025

    Top posts on HN

    1. 1
      Let’s build a browser engine (2014)
      21 people · 259 points · first shared 2014 · 47 comments on HN
    2. 2
      Congratulations on IE10: from Mozilla with cake
      1 person · 246 points · first shared 2012 · 51 comments on HN
    3. 3
      Let's build a browser engine Part 3: CSS
      1 person · 147 points · first shared 2014 · 17 comments on HN
    4. 4
      Build a browser engine part 5: Box model and layout tree
      1 person · 127 points · first shared 2014 · Discussion on HN
    5. 5
      Let's build a browser engine, Part 6: Block layout
      1 person · 120 points · first shared 2014 · 22 comments on HN
    6. 6
      Let's build a browser engine, part 7: Intro to Painting
      1 person · 90 points · first shared 2014 · 9 comments on HN
    7. 7
      Mobile web developers: Your users hate it when you do this
      1 person · 70 points · first shared 2010 · 23 comments on HN
    8. 8
      Let's build a browser engine, Part 4: Style
      1 person · 66 points · first shared 2014 · 2 comments on HN
    9. 9
      Compleat: Programmable bash completion for human beings
      1 person · 52 points · first shared 2009 · 7 comments on HN
    10. 10
      Android 2.0 ships with the V8 JavaScript engine and ARM JIT
      1 person · 31 points · first shared 2009 · Discussion on HN

    What HN people wrote when they linked it

    • chinesempireMay 2020

      > If you watch the talk I linked below

      I've watched it several times over the past 2 years

      And I've read the posts about writing and HTML engine in Rust when they first came out in 2014

      https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html

      and ported them to Elixir and still use them in my programming lessons

      > Rust was key to the success.

      For them

      It's important to specify that Rust, built by Firefox, lead to a Firefox success.

      Just like Dart, created by Google, is the language of choice for Flutter, also created by Google.

      I know you've been working at Mozilla to work on Rust and I believe Rust is very good, but I also think Mozilla could have used other languages, there were a few that could led them to success, but they understood this are times where the "means of production" aren't the machines but engineers tools, and creating a programming language is the best way to control part of that world.

    • rockwotjOct 2022

      I recently implemented a similar concept to this for HTML emails at shortwave.com, it only works for the subset of non table emails (which we assume are marketing emails and you want to see the full HTML). It allows us to render stuff wayyy faster (especially on mobile where webviews are not cheap). We don't go all the way to pixel layout because we want to have some responsiveness, but it allows for heavily normalized emails (no more neon yellow on a green background with comic-sans font) and some other neat optimizations.

      Didn't use yoga but a from scratch implementation. A good starting point is let's build a browser engine [1]. I hope to blog about it at somepoint.

      [1]: https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html

    • nkurzNov 2010

      I was going to ask for a brief overview of the architectural differences between Fennec, Webkit and Opera, but then I found your informative article here:

      http://limpet.net/mbrubeck/2010/10/04/why-fennec-is-different.html

      That hit most of my questions. Thanks! Are there any other Android browsers that have cropped up since then that might be worth mentioning? I saw an announcement for Opera Mobile -- does that change the landscape?

      I'm currently using Dolphin HD, and am mostly satisfied with it. It's recent 4.0 upgrade helped a lot and took care of almost all my irritations with it. If only it were open source so the last remaining few could get fixed. But I'll check out Firefox Mobile soon and see how it compares.

    • wernseyAug 2020

      Let's build a browser engine! [1] by Matt Brubeck is a good place to start. I see Kosmonaut cites it in its README

      I once took a stab at rewriting it in C99 using reference counting for memory management [2], so I recognised the screenshot in Kosmonaut immediately.

      Unfortunately the article series stops before explaining inline layouts and I never got around to doing anything further with my implementation.

      [1] https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html

      [2] https://github.com/wernsey/robinson-c

    • mbrubeckNov 2010

      Yes, we support the viewport meta tag: http://limpet.net/mbrubeck/2010/05/10/fennec-meta-viewport.html

      We don't yet support touch events. We're working on it, but it will probably not be reading until the next release after 4.0: https://bugzilla.mozilla.org/show_bug.cgi?id=544614

      The newly formed W3C Web Events working group will be coming up with a standardized version of the various non-standard touch events invented by Apple, Google, and Mozilla: http://www.w3.org/2010/webevents/

    • zozbot234Jan 2020

      It's not a hack, although I can't really fault you for thinking otherwise. The borrow notations are & (shared) and &mut (exclusive, guarantees mutability regardless of type). 'Interior mutability' is a way of enabling shared data to be mutable. See https://limpet.net/mbrubeck/2019/02/07/rust-a-unique-perspective.html for a more principled explanation, which even improves on Rust's official docs - this is probably best read in combination w/ OP's series.

    Related

    A Minute with Brendanaminutewithbrendan.com25 people

    A Minute With Brendan Eich

    A Minute with Brendan
    Personal · last shared 2013
    Mozilla Hackshacks.mozilla.org1.1k people

    How Firefox Got Fast Again

    Mozilla Hacks
    Company · last shared 2026
    Robert O'Callahanweblogs.mozillazine.org70 people

    H.264 Licencing and Free Software

    Robert O'Callahan
    Personal · last shared 2014
    Jake Archibaldjakearchibald.com191 people

    I discovered a browser bug

    Jake Archibald
    Personal · last shared 2026
    Lundukelunduke.substack.com91 people

    The computers used to do 3D animation for Final Fantasy VII in 1996

    Lunduke
    Personal · last shared 2026
    Alex Russellinfrequently.org165 people

    If not React, then what?

    Alex Russell
    Personal · last shared 2026
    Mozilla Researchresearch.mozilla.org43 people

    Over the edge: The use of design tactics to undermine browser choice

    Mozilla Research
    Company · last shared 2026
    Mozilla Techmedium.com/mozilla-tech52 people

    A Quantum Leap for the Web

    Mozilla Tech
    Company · last shared 2026