The Curious Engineer

All blogs / Frontend / CSS / browsers

Jake Archibald's blog

jakearchibald.com

Frontend / CSS / browsersJavaScript / TypeScriptWeb development

Posts
94 from 3 Jul 2013 to 15 Oct 2026
Posting
now and then (4 in the last year)
Kind
personal blog
Feed
https://jakearchibald.com/posts.rss

2026 4

  1. JPEG XL vs AVIF for web use-cases
  2. Controlling when CSS custom property values are computed
  3. Fixing my tooltip accessibility mistake
  4. The Goldilocks customizable select height

2025 7

  1. Importing vs fetching JSON
  2. The present and potential future of progressive image rendering
  3. Fetch streams are great, but not for measuring upload/download progress
  4. Making XML human-readable without XSLT
  5. Give footnotes the boot
  6. Animating zooming using CSS: transform order is important… sometimes
  7. Firefox + custom elements + iframes bug

2024 5

  1. How should <selectedoption> work?
  2. Video with alpha transparency on the web
  3. Garbage collection and closures
  4. HTML attributes vs DOM properties
  5. View transitions: Handling aspect ratio changes

2023 2

  1. The case against self-closing tags in HTML
  2. The gotcha of unhandled promise rejections

2022 3

  1. Getting the correct HTML codecs parameter for an AV1 video
  2. Drawing a star with DOMMatrix
  3. Avoiding <img> layout shifts: aspect-ratio vs width & height attributes

2021 17

  1. Cross-fading any two DOM elements is currently impossible
  2. How to win at CORS
  3. Writing great alt text: Emotion matters
  4. `export default thing` is different to `export { thing as default }`
  5. Encoding data for POST requests
  6. In JS functions, the 'last' return wins
  7. Halve the size of images by optimising for high density displays
  8. Performance-testing the Google I/O site
  9. Who has the fastest F1 website in 2021? Part 8
  10. Who has the fastest F1 website in 2021? Part 7
  11. Who has the fastest F1 website in 2021? Part 6
  12. Who has the fastest F1 website in 2021? Part 5
  13. Who has the fastest F1 website in 2021? Part 4
  14. Who has the fastest F1 website in 2021? Part 3
  15. Who has the fastest F1 website in 2021? Part 2
  16. Who has the fastest F1 website in 2021? Part 1
  17. Don't use functions as callbacks unless they're designed for it

2020 5

  1. CSS paint API: Being predictably random
  2. AVIF has landed
  3. A padlock problem
  4. Different versions of your site can be running at the same time
  5. Event listeners and garbage collection

2019 4

  1. Service workers at TPAC
  2. Probably?
  3. Who has the fastest website in F1?
  4. A declarative router for service workers

2018 3

  1. What happens when packages go bad?
  2. I discovered a browser bug
  3. Third party CSS is not safe

2017 10

  1. Arrays, symbols, and realms
  2. await vs return vs return await
  3. Netflix functions without client-side React, and it's a good thing
  4. Lazy async SVG rasterisation
  5. HTTP/2 push is tougher than I thought
  6. ECMAScript modules in browsers
  7. Combining fonts
  8. Async iterators and generators
  9. Do we need a new heading element? We don't know
  10. Events and disabled form fields

2016 11

  1. Fun hacks for faster content
  2. Sounds fun
  3. SVG & media queries
  4. Service worker meeting notes
  5. The performance benefits of rel=noopener
  6. Caching best practices & max-age gotchas
  7. Streaming template literals
  8. Control CSS loading with custom properties
  9. The future of loading CSS
  10. Service workers and base URIs
  11. 2016 - the year of web streams

2015 4

  1. The anatomy of responsive images
  2. Tasks, microtasks, queues and schedules
  3. If we stand still, we go backwards
  4. That's so fetch!

2014 13

  1. The offline cookbook
  2. Iterators gonna iterate
  3. the past
  4. Using ServiceWorker in Chrome today
  5. Minimising font downloads
  6. pretty well
  7. brief overview
  8. Improving the URL bar
  9. visibility: visible undoes visibility: hidden
  10. ES7 async functions
  11. Promises: resolve is not the opposite of reject
  12. The browser cache is Vary broken
  13. Don't use flexbox for overall page layout

2013 6

  1. Progressive enhancement is faster
  2. Having fun with <image>
  3. Solving rendering performance puzzles
  4. Animated line drawing in SVG
  5. I've only gone and done a blog
  6. Progressive enhancement is still important