Top all-time · #339
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.
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?
- Explaining the browser's event loop, tasks, and microtasks11 people · 11 mentions · first linked 2015-08-17
- AVIF has landed (2020)8 people · 9 mentions · first linked 2020-09-08
- The browser bugs and edge cases of HTTP/2 push7 people · 10 mentions · first linked 2017-05-30
- How to win at CORS6 people · 7 mentions · first linked 2021-10-12
- ES7 async functions6 people · 6 mentions · first linked 2014-03-27
- The present and potential future of progressive image rendering6 people · 6 mentions · first linked 2025-10-16
- Caching best practices and max-age gotchas (2016)6 people · 6 mentions · first linked 2016-04-27
- Using iframes and document.write to improve navigation performance5 people · 5 mentions · first linked 2016-12-06
- Await vs. return vs. return await5 people · 5 mentions · first linked 2017-12-07
- Who has the fastest website in F1?5 people · 5 mentions · first linked 2019-03-19
What Hacker News says?
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”Submitted I discovered a browser bug as a story · 574 points
HN discussionI 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”Submitted HTML Attributes vs. DOM Properties as a story · 397 points
HN discussionSame 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”Submitted How to win at CORS as a story · 389 points
HN discussionIt'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”Submitted Don't encode POST bodies like GitHub Copilot, use URLSearchParams as a story · 387 points
HN discussionThank 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”Submitted JPEG XL vs. AVIF for web use-cases as a story · 332 points
HN discussionOne 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”Submitted Who has the fastest website in F1? as a story · 230 points
HN discussionCareful 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”Submitted Who has the fastest F1 website (2021) as a story · 203 points
HN discussionThere 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”Submitted Chrome's experiment of hiding the URL is great for security as a story · 190 points
HN discussionAlthough 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”Submitted Don't use functions as callbacks unless they're designed for it as a story · 161 points
HN discussionJake. 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”Submitted Do we need a new heading element in HTML? as a story · 159 points
HN discussionAn 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”Submitted Explaining the browser's event loop, tasks, and microtasks as a story · 152 points
HN discussion> 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=.…
on “How to win at CORS”Submitted Video with Alpha Transparency on the Web as a story · 151 points
HN discussionBonus 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”Submitted AVIF has landed (2020) as a story · 141 points
HN discussionI 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”Submitted JavaScript garbage collection and closures as a story · 138 points
HN discussionAaaand 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”Submitted Tasks, microtasks, queues and schedules (2015) as a story · 126 points
HN discussion