Hacker Blogs
Work in progress: 15,409 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #339

J

Jake Archibald

Personal blog · jakearchibald.comwebprogramming

Jake Archibald's personal blog at jakearchibald.com covers web and programming. Since 2011, 153 different Hacker News readers have linked it 266 times, most often “Explaining the browser's event loop, tasks, and microtasks”. It is still writing: the last post was on 2026-10-15, and you can follow it by feed.

Visit the blog
266mentions?
7recommend?
153HN people?
2011–2026first – last linked?
Links on Hacker News per year · peak 42 in 2021

Sometimes recommended · 7 of 40 sampled comments recommend it?

Why HN links it

HN readers link Jake Archibald's articles on caching, service-worker offline patterns, image formats, CORS and browser internals, mostly as sources. Commenters praise his explanations.

Recommended for · 7 comments
Called 'great' (offline cookbook), 'a good article' (callbacks), 'a good job of explaining' (walkway mechanism), 'incredible' (AVIF), and 'a conversational tone

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Explaining the browser's event loop, tasks, and microtasks
    11 people · 11 mentions · first linked 2015-08-17
  2. AVIF has landed (2020)
    8 people · 9 mentions · first linked 2020-09-08
  3. The browser bugs and edge cases of HTTP/2 push
    7 people · 10 mentions · first linked 2017-05-30
  4. How to win at CORS
    6 people · 7 mentions · first linked 2021-10-12
  5. ES7 async functions
    6 people · 6 mentions · first linked 2014-03-27
  6. The present and potential future of progressive image rendering
    6 people · 6 mentions · first linked 2025-10-16
  7. Caching best practices and max-age gotchas (2016)
    6 people · 6 mentions · first linked 2016-04-27
  8. Using iframes and document.write to improve navigation performance
    5 people · 5 mentions · first linked 2016-12-06
  9. Await vs. return vs. return await
    5 people · 5 mentions · first linked 2017-12-07
  10. Who has the fastest website in F1?
    5 people · 5 mentions · first linked 2019-03-19

What Hacker News says?

  1. Does download size matter? Why bother with compression or minification? https://jakearchibald.com/2019/f1-perf/

    Comment linking /2019/f1-perf/

    on “Relearn CSS layout”
  2. Submitted I discovered a browser bug as a story · 574 points

    HN discussion
  3. markdog12 · 2021-03-04Recommends
    I always liked this http caching article, done in a conversational tone: https://jakearchibald.com/2016/caching-best-practices/

    Comment linking /2016/caching-best-practices/

    on “HTTPWTF”
  4. Submitted HTML Attributes vs. DOM Properties as a story · 397 points

    HN discussion
  5. Same thing happening on Github - https://www.youtube.com/watch?v=4zG0AZRZD6Q https://jakearchibald.com/2016/fun-hacks-faster-content/

    Comment linking /2016/fun-hacks-faster-content/

    on “Browsers are pretty good at loading pages”
  6. Submitted How to win at CORS as a story · 389 points

    HN discussion
  7. It's guaranteed to return as soon as the thread of execution finishes prior immediately-pending callbacks (since it's basically a synchronous function call with an awaited return value). It's "finished" as soon as it's finished initiating the send, since it doesn't await the result. (The exact point where this gets resolved, relative to other pending callbacks/resolutions, is a very wonky detail involving constructs…

    Comment linking /2015/tasks-microtasks-queues-and-schedules/

    on “JavaScript async/await implemented in V8”
  8. Submitted Don't encode POST bodies like GitHub Copilot, use URLSearchParams as a story · 387 points

    HN discussion
  9. Thank you! This is exactly what I had in mind. The streaming aspect of MPA pages is a great example of something you can't really do in an SPA. (Although there are hacks: https://jakearchibald.com/2016/fun-hacks-faster-content/ )

    Comment linking /2016/fun-hacks-faster-content/

    on “The balance has shifted away from SPAs”
  10. Submitted JPEG XL vs. AVIF for web use-cases as a story · 332 points

    HN discussion
  11. One particularly interesting (to me, at least) approach using progressive decoding was described by Jake Archibald ( https://jakearchibald.com/2025/present-and-future-of-progres... ). If browsers extended `srcset` with support for HTTP Range requests, we could use a progressive-encoded jpg (xl or not) file as the source for multiple detail levels. A device with a small screen would request the first 10kb of the imag…

    Comment linking /2025/present-and-future-of-progressive-image-rendering/

    on “Firefox 157 will include JPEG XL by default on all platforms”
  12. Submitted Who has the fastest website in F1? as a story · 230 points

    HN discussion
  13. Careful with that: https://jakearchibald.com/2021/function-callback-risks/ Using `Number` is probably safe because it'd break much of the web of it were changed. Also note that it is not equivalent to parseInt, as Number and parseInt apply different parsing rules.

    Comment linking /2021/function-callback-risks/

    on “Faster JavaScript Calls”
  14. Submitted Who has the fastest F1 website (2021) as a story · 203 points

    HN discussion
  15. greenyouse · 2016-12-23Recommends
    There are a few more patterns as well if you use ServiceWorkers. Jake Archibald has a great "offline cookbook" article that lays out other common use cases and strategies. [0] https://jakearchibald.com/2014/offline-cookbook/

    Comment linking /2014/offline-cookbook/

    on “Offline First – A Better HTML5 User Experience”
  16. Submitted Chrome's experiment of hiding the URL is great for security as a story · 190 points

    HN discussion
  17. Although HTTP/2 PUSH_PROMISE is a lot more complicated for developers: https://jakearchibald.com/2017/h2-push-tougher-than-i-though...

    Comment linking /2017/h2-push-tougher-than-i-thought/

    on “HTTP 103 – An HTTP Status Code for Indicating Hints”
  18. Submitted Don't use functions as callbacks unless they're designed for it as a story · 161 points

    HN discussion
  19. Jake. Ahem: https://jakearchibald.com/2023/against-self-closing-tags-in-...

    Comment linking /2023/against-self-closing-tags-in-html/

    on “HTML Attributes vs. DOM Properties”
  20. Submitted Do we need a new heading element in HTML? as a story · 159 points

    HN discussion
  21. An attribute. From https://jakearchibald.com/2024/attributes-vs-properties/#ref... > When a property reflects an attribute, the attribute is the source of the data. When you set the property, it's updating the attribute. When you read from the property, it's reading the attribute. value is different. From https://jakearchibald.com/2024/attributes-vs-properties/#val... > the value property does not reflect the value…

    Comment linking /2024/attributes-vs-properties/

    on “HTML Attributes vs. DOM Properties”
  22. Submitted Explaining the browser's event loop, tasks, and microtasks as a story · 152 points

    HN discussion
  23. > I wish there was a way to let me make POST requests on behalf of the user without dealing with CORS. Of course the request wouldn't include any user cookies etc to avoid the security issues. You can! And it can include credentials! You can do this with a basic <form> element, so fetch() lets you do the same. What you can't do is read the response. Demo: https://jakearchibald.com/2021/cors/playground/?prefillForm=.…

    Comment linking /2021/cors/playground/?prefillForm=1&requestMethod=POST&requestUseCORS=&requestSendCredentials=1&preflightStatus=406&preflightAllowOrigin=&preflightAllowCredentials=&preflightAllowMethods=&preflightAllowHeaders=&responseAllowOrigin=&responseAllowCredentials=&responseExposeHeaders=&requestHeaderName=Content-Type&requestHeaderValue=multipart%2Fform-data

    on “How to win at CORS”
  24. Submitted Video with Alpha Transparency on the Web as a story · 151 points

    HN discussion
  25. Bonus fact: I wanted the 'app' ( https://jakearchibald.com/2021/cors/playground/ ) to allow the HTTP method to be set to anything, which meant I needed a server that could accept anything. I usually use NodeJS, but it turns out the HTTP library they use turns the HTTP method into an enum, so only a subset is supported ( https://github.com/nodejs/node/blob/d798de1c653efa5ec0015d44... ). This restriction only exists i…

    Comment linking /2021/cors/playground/

    on “How to win at CORS”
  26. Submitted AVIF has landed (2020) as a story · 141 points

    HN discussion
  27. I think you folks were in a really tricky spot. Making <audio>/<video> require CORS would have been the right decision for security reasons, particularly since <audio>/<video> introduces range requests. It would have prevented these security bugs https://jakearchibald.com/2018/i-discovered-a-browser-bug/ . However, the competition at the time was Flash, and making <audio>/<video> so much harder than it was with Flas…

    Comment linking /2018/i-discovered-a-browser-bug/

    on “How to win at CORS”
  28. Submitted JavaScript garbage collection and closures as a story · 138 points

    HN discussion
  29. Aaaand it's done https://jakearchibald.com/2021/cors/#cors-and-caching Thanks for prompting this!

    Comment linking /2021/cors/

    on “How to win at CORS”
  30. Submitted Tasks, microtasks, queues and schedules (2015) as a story · 126 points

    HN discussion

Search all of HN for jakearchibald.com

Linked by the same people?