Optimizing Static HTML And Images With Webpack

Optimizing Static HTML And Images With Webpack

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 »
Fast Inline Images With React and Webpack

Fast Inline Images With React and Webpack

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 »
Using HTTP Caching

Using HTTP Caching

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 of previ... Read more »
Advertising's Performance Tradeoffs

Advertising's Performance Tradeoffs

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 »
Using First Contentful Paint (FCP)

Using First Contentful Paint (FCP)

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 »
Measuring First Input Delay (FID)

Measuring First Input Delay (FID)

First Input Delay (FID) measures how long the browser took to respond to the first user input event. It’s one of several Core Web Vital metrics that measure ... Read more »
Fastest News: Best Performing News Website

Fastest News: Best Performing News Website

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 »
Breaking Out of Webpack Based Build Chains

Breaking Out of Webpack Based Build Chains

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 »
Episode 17: User Sign Up and Simple Access Control

Episode 17: User Sign Up and Simple Access Control

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 »
Episode 16: Using Redis for Distributed User Sessions in ASP.NET Core

Episode 16: Using Redis for Distributed User Sessions in ASP.NET Core

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 »
Episode 15: Simple Cookie Based Authentication in ASP.NET Core

Episode 15: Simple Cookie Based Authentication in ASP.NET Core

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 »
Episode 14: Storing User Data In Redis

Episode 14: Storing User Data In Redis

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 »
Episode 13: Testing In .NET Core Using NUnit

Episode 13: Testing In .NET Core Using NUnit

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 »
Episode 12: Tweaking Systemd Services With Ansible

Episode 12: Tweaking Systemd Services With Ansible

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 »
Episode 11: Connecting to Redis in .NET Core 3.1

Episode 11: Connecting to Redis in .NET Core 3.1

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 »
Episode 10: Installing Redis Using An Ansible Galaxy Role

Episode 10: Installing Redis Using An Ansible Galaxy Role

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 »
Episode 9: Running ASP.NET Core Applications Using Systemd and Ansible

Episode 9: Running ASP.NET Core Applications Using Systemd and Ansible

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 »
Episode 8: Using Ansible to Configure NGINX for ASP.NET Core

Episode 8: Using Ansible to Configure NGINX for ASP.NET Core

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 »
Episode 7: Using Ansible Roles for Common Linux Settings

Episode 7: Using Ansible Roles for Common Linux Settings

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 »
Episode 6: Buying an SSL Certificate

Episode 6: Buying an SSL Certificate

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 »
Episode 5: Let's Encrypt? Let's Not.

Episode 5: Let's Encrypt? Let's Not.

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 »
Episode 4: Deploying Code to Linux From TeamCity

Episode 4: Deploying Code to Linux From TeamCity

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 »
Episode 3.5: Basic Ansible With SSH Keys

Episode 3.5: Basic Ansible With SSH Keys

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 »
Episode 3: SSH Keys For Server Authentication

Episode 3: SSH Keys For Server Authentication

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 »
Episode 2: Building the Code

Episode 2: Building the Code

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 »
Episode 1: File->New Project

Episode 1: File->New Project

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 »
Episode 0: Introducing Request Metrics!

Episode 0: Introducing Request Metrics!

Announcing Request Metrics, a new tool from the team who built TrackJS. Request Metrics is a web performance tool that records how fast your production Page ... Read more »