Posts
-
TIL: A Link’s Download Attribute Won’t “Just Work” for Cross-Origin Resources
I just realized that using the "download" attribute on HTML links works only for same-origin resources by default. Fortunately, the "fix" is pretty simple, as long as you have control over your server’s response headers.
Read It -
Get All That Network Activity Under Control with Priority Hints
The browser is very good at prioritizing resources requests on its own. But it's not always great. Priority hints makes it easy to provide explicit instructions as to how and in what network activity occurs.
Read It -
Your Cache Headers Could Probably be More Aggressive
It's common for modern hosts to cache static assets in a flexible, but not most optimal way. Let's explore why that is and what we can do to push cache performance (for some assets) even further.
Read It -
Reviewing PicPerf's Impact on SongwriterCity.com
By using PicPerf, Songwriter City's saw a sizeable reduction in total page weight and a healthy boost in its overall performance score. Here are the details.
Read It -
Building a Two-Way Data Binding Hook for Form Inputs in React
Two-way form input binding is a popular feature offered by JavaScript frameworks like Vue and Svelte. I took a minute to explore what the React version of it might look like. I don't hate the result.
Read It -
Taking Variable Fonts for a Spin
It's been a minute since they were introduced, but I finally took some time to see how variable fonts stack up to their static counterparts. At least for my own blog, it was worth the effort.
Read It -
Run Puppeteer with Docker on Fly.io
Walking through the process of running Dockerized Node & Puppeteer on Fly.io.
Read It -
How to Better Leverage Browser Preloading
It's all too common to see websites preload assets already embedded in their HTML. But doing so often doesn't gain you much, and fails to leverage the tool for the greatest impact.
Read It -
Mount a Multi-Page SPA into an App with Server-Side Routing
Using React Router + Laravel as an example, let's explore how to mount a multi-page SPA into an application with traditional, server-rendered routes, as well as the reasons you might want to do so.
Read It -
Why I Moved from Notion to Ghost for My Headless CMS
After building content on Markdown and Notion for my blog posts, I think I've finally found a CMS I can see myself sticking with for a while.
Read It -
Why Your Website Should Use Modern Image Formats
With respect to performance, the format you choose for your site's images can have a huge impact on your site's performance and overall user experience.
Read It -
Why I Like Using Maps (and WeakMaps) for Handling DOM Nodes
Breaking down some of the reasons Maps (and WeakMaps) are especially useful tools when working with a large number of DOM nodes.
Read It -
Elegant Memoization with Ruby’s .tap Method
There are a few different ways to memoize complicated chunks of code in Ruby. Here's why .tap is my personal favorite.
Read It -
If Possible, Don't Run Prism.js in the Browser
I just moved this site's content over to a headless Ghost instance. As a part of that move, instead of processing Markdown, I'm retrieving raw
Read It -
Consider Animating Your Canvas in a Web Worker
With so much going on on the browser's main thread, keeping a canvas animation buttery smooth can sometimes be a challenge. Web workers can help ease that hassle by handling the painting process elsewhere.
Read It