Free web performance master class
Learn about web performance and how to make your site faster, delivered straight to your inbox.
Browsers provide detailed performance information about every resource a webpage loads. Most of this information is hidden during cross-origin requests howev... Read more »
Interaction to Next Paint (INP) is the newest addition to Google’s Core Web Vital metrics. It measures how real users perceive the responsiveness of modern w... Read more »
Webpack is great for building JavaScript applications, but did you know it can optimize static HTML assets too? In this article, we use Webpack to process HT... Read more »
Webpack is great for building React applications, but did you know it can help you optimize app performance too? Webpack can automatically inline image data,... Read more »
The fastest website is the website that is already loaded, and that’s exactly what we can do with HTTP caching. HTTP caching lets web browsers reuse previous... Read more »
Advertising is everywhere on the web and users have noticed. More than 40% of internet users block ads. Are these users sticking it to the man or just tired ... Read more »
First Contentful Paint, or FCP, measures the time take to render the first element of a webpage. It’s a modern, user-centric measurement of how fast users s... Read more »
Warning. First Input Delay (FID) was retired as a Core Web Vital in 2024 due to several shortcomings in measuring interactivity. It was replaced with Interac... Read more »
News teams often compete to break the story first. We think they should also compete on being the first to load their website. Let’s apply our web performanc... Read more »
JavaScript build chains have gotten outrageously complicated. Let’s create one that isn’t. Request Metrics monitors how real users experience the performance... Read more »
Users can’t actually sign up for an account. Today we fix that. Request Metrics won’t be very successful if users can’t sign up! We recently completed cookie... Read more »
We need distributed session state because load balancing with sticky sessions is whack. Spoiler: We DON’T roll it ourselves. ASP.NET session storage is usefu... Read more »
ASP.Net Core Identity is too magical. Will rolling authentication ourselves finally catch up to us? There are as many ways to set up authentication as there ... Read more »
Redis only supports a handful of data types. Our data model has to fit within them. Are we crazy for trying this? It’s time to think about the data model for... Read more »
Testing framework arguments are almost as bad as tabs vs spaces. We’ve definitely picked the right one though. We’re professionals. We’ve started writing app... Read more »
We thought we were done with infrastructure work. We were wrong. Just as we’ve started work on application code, it turns out our server configuration needs ... Read more »
We’ve finally finished screwing around with basic groundwork. Today we start writing actually useful application code! First, can we connect to Redis? Now we... Read more »
A pre-built playbook from Ansible Galaxy lets us easily install Redis. (Even we don’t re-invent the wheel every time.) The Request Metrics application will u... Read more »
A web application isn’t much use if it isn’t running. We’ll hand in our neckbeard cards and copy+paste our way out of the problem. Last episode, we configure... Read more »
It’s best practice for ASP.NET Core applications to have a “real” webserver in front of them. We’ll configure NGINX for the job using Ansible. We don’t hate ... Read more »
Being Linux, some tweaks are needed right out of the box. Since we aren’t proper neckbeards we rely on Ansible to ensure we get them right for each new machi... Read more »
How to buy a wildcard SSL certificate like grumpy old men. How to buy a wildcard SSL certificate like grumpy old men. While there are other options like Let’... Read more »
We need a SSL certificate for our new site. Let’s Encrypt makes it easy, right? Actually, it’s complicated. SSL support is table stakes for any modern websit... Read more »
We setup TeamCity to deploy the latest build to Linux using SSH. TeamCity is so slick, it can make anyone look like a wizard. Even us! We’re ready to deploy ... Read more »
We finally use our new SSH key to provision our Linux dev server with Ansible. Witness the “Hello World” of Ansible setups. Now that we have a SSH key, we ca... Read more »
We create a new SSH key to use for authentication to a Linux dev server. We’re rather unhip so we do it all from Windows. In the previous video, we created a... Read more »
We set up a repeatable CI build for our new .NET Core project so we can pretend we’re professionals. We’re old and crotchety though so we still use TeamCity ... Read more »
Every journey begins with a single step. We wade through the myriad options of creating a new .NET Core project in 2020. We just make it look harder than it ... Read more »
Announcing Request Metrics, a new tool from the team who built TrackJS. Request Metrics is a real user monitoring performance tool that records how fast your... Read more »