React Native is a framework for building native mobile applications using JavaScript and React. Android and iOS apps written using React Native leverage the platforms’ user interface elements to ensure that they look and feel like native apps. In this post, we will look at the similarities and differences between React and React Native, how […]

tl;dr: JPEG-XR, an image format supported on Internet Explorer and Microsoft Edge browser, gets software-decoded on the CPU main thread alongside Javascript and thereby negatively impacts page rendering performance and interactivity, especially in Single-Page-Apps. This measurably harms conversions. At trivago, we multivariate-test everything. Every piece of code, every visual change and every architectural adaption is […]

Introduction We spend a lot of time measuring and analyzing the performance of our products using a variety of tools. But how much do we know about the performance of these tools themselves, and the observer effect they introduce if they’re slow? Earlier this year I had the opportunity to make some contributions to the […]

Wouldn’t it be nice to show a preview of an image while it’s still being loaded? And without any additional HTTP requests and with just a tiny amount of CSS? Enter Gradient Image Placeholders. Or GIP for short. Pronounced jipp as not to be confused with the image format GIF which (there are no two […]

If you’re reading this, you’re probably the type who’s continuously looking for pragmatic, forward-thinking ways to make your site(s) faster. So when I read a guide a while back about a thing called differential serving by Phil Walton, I was intrigued. If you haven’t heard about this technique, it’s the idea that you can compile […]

Background There are three ways of making money on the web: Subscriptions (e.g Netflix), eCommerce (e.g Amazon) or Advertisements (e.g Facebook) and all three monetization methods can be improved by improving page speed . There are tons of statistics to support the page speed impact but they are usually light on the last category and […]

As a developer, you may know that performance is a crucial factor, which decides if user willingly uses your application. No one wants to use the sluggish app, neither you nor user of your app. Maybe you think that improving performance is only about compressing assets and code optimization. Well, there is a vast area […]

25th
Dec 2018

Consider the following timing data for a stylesheet request: If you were staring at the browser who had to wait around for a response for those 236.79 milliseconds, you’d be hard pressed to find out what was going on. Maybe that time reflects RTT (roundtrip time) and my server responded instantly. Or maybe my server […]

There are many very good articles out there on how to use new feature X or technique Y or tool Z to improve the performance of your websites. Navigating the labyrinth of modern web performance might be hard though if you’re new to the topic. In this article I will try to come up with […]

Last year I wrote about how to leverage the Chrome UX Report (CrUX) to find your competitive edge. Since then, there have been several important developments: CrUX has grown to over 4 million websites, the dataset has accumulated over a year’s worth of performance trends, and most importantly, the HTTP Archive has begun analyzing how […]

Kornel Lesiński, of ImageOptim fame, did an excellent talk at performance.now() about image optimisation. In it, he suggested that a single-frame AV1 video could already outperform a JPG or WebP image in terms of compression ratio. With the single-frame AV1 being half the size of the JPG. I decided to verify that claim. Compression performance […]

Being interested in Web Performance as a developer is not really a choice anymore. If you, for example, decided to watch all the presentations from this year’s Chrome Dev Summit (a conference organised by Google Chrome Team), you would quickly realize that almost all sessions tackled the Performance in one way or another and it’s […]

Back in October, the Web Performance Working Group had its annual two day Face-to-Face meeting (or F2F, as the kids call it), as part of TPAC, the W3C annual gathering. We had a very productive meeting preceded by the plenary day, where we discussed various related issues as well, in two breakout sessions. If you’re […]

In the earlier days of web development, and to some extent still today, when creating brochure websites for small businesses needed to be done “yesterday,” there was the iron triangle: “fast”, “good”, and “cheap”. The sole proprietor client was told they could only pick two. They usually went for “good” and “cheap”, providing webmasters the […]

This article highlights the work done by the B2B Sales and Marketing team within TELUS Digital, in support of the broader TELUS Digital initiative to improve performance. Why Does Performance Matter? In January of 2018, Google announced that beginning in July, page speed and performance would be a ranking factor for mobile searches, impacting organic […]

We see a lot of interesting developments in performance engineering recently. Partly due to new technologies, partly due to a completely new scale of systems, partly due to a new level of integration and sophistication. However, it is concerning that the need for a holistic approach is rarely mentioned. What is often missed is context. […]

Every day I read a tweet or a posting where a web performance consulting company talks about hero images, JavaScript and how evil they are and that they have to become smaller. I agree with all those claims but actually the real problem often is not the hero image per se and many of them […]

On the 2012 edition of the performance advent calendar, I posted about the non-blocking script loader pattern that we developed at LogNormal/SOASTA to load our 3rd party JavaScript outside the critical path and make sure we were not a SPoF for our customers’ pages. Unlike the async and defer attributes, which still block the onload […]

There are practical reasons that web performance matters. From a user perspective, a site that’s slow results in frustration, annoyance, and ultimately a preference for alternatives. From the perspective of a site operator, frustrated users are users who aren’t going to return, and that makes it more difficult to accomplish your mission (be it commercial […]

Prefetching is a technique that can be used to achieve near-instant page loads. This technique has been used for decades to speed up hardware and compilers; but it’s only been recently, thanks to the introduction of the Network Information API, that it’s usage to speed up web applications has become practical. The Network Information API […]

When it comes to the rules of building a fast web, many of us started with Steve Souders’ list of performance rules. These rules are great, and for the most part, still hold true years after their original publication. Rule #1 from this vaunted list is “Make Fewer HTTP Requests.” In the examples for rule […]

In the never ending quest to build the fastest websites possible, I am always looking for sneaky ways to return the lightest and most optimal resources to my web pages. As web developers, we’ve never been luckier with regards to the power that our browsers have today. We have the ability to tailor the resources […]

This post shows how we measure and interpret load times on Wikipedia. It also explains what real-user metrics are, and how percentiles work. Navigation Timing When a browser loads a page, the page can include program code (JavaScript). This program will run inside the browser, alongside the page. This makes it possible for a page […]

More and more people are making use of the data saver mode built into their browser (Opera Turbo, Yandex Turbo Mode, Chrome Data Saver). As website owners we should listen and serve a lightweight version when the data-saver request header is present. I’ll share the approaches, trade-offs and results from my journey shaving off bytes […]

tl;dr: I’m currently working on an open source backend RUM tool called Basic RUM. The project is still at its concept stage and is helping me answer some questions at my full-time job. An alpha version is planned for the first quarter of 2019 but I’ve decided to spread the news earlier because I’ve noticed […]

A couple of years ago I had a summer project: I wanted to build an easy way to compare HAR files. When I was finished it became https://compare.sitespeed.io. It’s Open Source and support all HAR files (with some extra love for HARs from WebPageTest/sitespeed.io/Browsertime). Today I want to share some of the new features that […]

Requesting page resources in the correct order is critical for a fast user experience. Imagine, for example, a web page with a bunch of large images on it as well as an external stylesheet, a custom web font and a few scripts in the head. If the browser downloaded all of the images first and […]

5th
Dec 2018

Guidelines like RAIL are popular in the web performance community. They often define time limits that must be respected, like 100ms for what feels instantaneous, or 1000ms for the limit of acceptable response time. Prominent people in the performance community keep telling us that there’s a lot of science behind those numbers. I’ve always been […]

QUIC and HTTP/3 : Too big to fail?! The new QUIC and HTTP/3 protocols are coming and they are the bee’s knees! Combining lessons and best practices from over 30 years of networking, the new protocol stack offers major improvements to performance, privacy, security and flexibility. Much has been said about the potential benefits of […]

We often talk about fixing web performance in existing solutions. I’ll try to underline the problem of why it happens and how to predict the need for fixing performance problems at the later phases of a project development. Hence, avoid the need to fix performance, and be fast by default. But first, why are we […]

This year was HTTP/2’s third birthday. Support of h2 in browsers and Web servers is pretty good. Nowadays, with a TLS certificate at hand using h2 is not much more effort than flipping a switch. All major Web servers like Nginx, Apache httpd or IIS have built-in support. Auxiliary software like HAProxy or Varnish/Hitch do […]

Time: The Zeroth Performance Metric That’s the title of the third chapter in my book, Analyzing Computer System Performance with Perl::PDQ, There, the discussion is centered around various technical concepts of time, such as: Unix epoch time, virtual clocks, benchmark timers, response time distributions, and so on. Time, whether explicit or implicit, is fundamental to […]