Articles, Videos, and Podcasts

I have over 81 articles and recordings published about the web, especially web performance.

Don't miss a post! Subscribe to my RSS feed or my newsletter. Or, check out other blogs and content I like on my blogroll.

Featured Articles

All Articles, Videos, and Podcasts

Search with Google or filter by topic:

In this talk, I will walk through how I built the themevitals.com website which displays web performance data by Shopify theme populated with data from HTTP Archive and CrUX. In a similar talk for the 11ty meetup, I spoke more about the static website building process. In this talk, I will focus more on what data is available in HTTP Archive and CrUX and show this example of how I use it.

On this bonus episode of Honest Ecommerce, we have Sia Karamalegos. She is a freelance developer and web performance engineer, a Google Developer Expert in web technologies, and formerly worked on the Shopify performance team. We talk about the difference between Lighthouse and Core Web Vitals, why site performance matters for bounce and conversion rates—not just SEO, how ThemeVitals collects and uses real-world data to benchmark Shopify themes, and how both merchants and theme developers can use it to make better performance decisions and so much more!

Did you ever notice those social media share images that automatically pop up for a site and think to yourself, "wow, it would be really cool if I could get that set up for my blog"? In this talk, Sia will show you how she uses 11ty shortcodes and Cloudinary to generate unique share images for each page and blog post on her site. (Cloudinary has a free tier that's generous enough that most personal sites fit under.)

Webmentions are an exciting standard which help enable the IndieWeb. We can own our own content, hosted on our own domains, without sacrificing social connection and replies with other people! In this talk, I discuss what webmentions are and how to implement them. The code is based on an Eleventy site, but the concepts should be applicable to any site.

103 Early Hints allow us to preconnect and even preload resources before the main document arrives. Come learn how the partnership between Shopify, Google, and Cloudflare led to this performance breakthrough, how Shopify is continuing to experiment with it at scale, and thoughts on what the future holds.

Lazy loading is a performance strategy that de-prioritizes assets like images that are not needed immediately after a webpage is loaded. As with any strategy, you can misuse it causing worse performance.

Published on Performance at Shopify

At Shopify, we’ve seen what works and what doesn’t work when companies want to improve their web performance. We want to share with you our top learnings to get you on the path of success.

Published on Performance at Shopify

In episode 3 of this series, , Sia Karamalegos (@TheGreenGreek) is joining Matt Ling (@mattling_dev) from Stripe to build out an end-to-end eCommerce store selling digital goods, using 11ty, Netlify serverless functions, and Stripe. In this third and final episode you’ll learn how to leverage a Netlify serverless function to build a webhook endpoint to listen and react to payment events such as a Checkout Session completing to fulfill your orders.

In episode 2 of this series, Sia Karamalegos (@TheGreenGreek) is joining Matt Ling (@mattling_dev) from Stripe to build out an end-to-end eCommerce store selling digital goods, using 11ty, Netlify serverless functions, and Stripe. In this second episode you’ll learn how to leverage Netlify serverless functions to create Checkout Sessions using the Stripe API and collect payments from your customers.

In episode 1 of this series, Sia Karamalegos (@TheGreenGreek) joins Matt Ling (@mattling_dev) from Stripe to build out an end-to-end eCommerce store selling digital goods, using 11ty, Netlify serverless functions, and Stripe. In this first episode you’ll learn how to model a product catalog in Stripe using Products and Prices and how to query and render them using Stripe-node and 11ty.

A lot of e-commerce solutions exist, but many of them charge a monthly fee. How could we build a site with the lowest hosting costs possible? Sometimes the biggest challenge is coming up with an architecture that will work. In this talk, I will show you how I'm building an Eleventy shop for digital downloads using Stripe, Netlify, Sendgrid, and AWS. It's a sneak peek for a longer series where we will go step-by-step in the build.

The state of web performance in 2021 including the Core Web Vitals (LCP, CLS, FID) as well as FCP and TTFB for the top ~8M websites.

Published on Web Almanac by HTTP Archive

What's holding you back from starting your blog? Sort through the real issues from the noise and start today.

Serverless functions are a key skill to know when moving to Jamstack applications or serverless architecture. Going serverless means having no server to manage while also having the ability to scale infinitely. In this talk, we'll start with a basic, static Eleventy website then build in dynamic features like form handling and secure API access using serverless functions. We'll use the Netlify CLI to set up our dev environment and deploy to production on Netlify.

Webmentions are an exciting standard which help enable the IndieWeb. We can own our own content, hosted on our own domains, without sacrificing social connection and replies with other people! In this talk, I discuss what webmentions are and how to implement them. The code is based on an Eleventy site, but the concepts should be applicable to any site.

Fonts are lovely but can slow down our loads. How can we make them faster? We all love fonts. From Google Fonts to Typekit, Hoefler&Co and more, they give character and tone to our websites. The down side of fonts is that they can really slow down our loads. In this talk we'll learn about common pitfalls like critical requests depth and how to use resource hints to play tricks with latency to load web applications faster. We'll walk through a network profile to understand what's going on in the browser and how to make it faster.

Web performance matters. From SEO to bottom-line revenue impacts, performance can make or break your app. However, fixing performance feels like a quagmire of expert-level topics. What if I told you JavaScript bundle sizes could be cut up to 50% by doing one thing only? Nearly 90% of web traffic runs on modern browsers, but we're transpiling all of our JavaScript to ES5. That’s expensive. In this talk, we'll learn about differential serving, or serving both modern bundles and legacy bundles using webpack. This talk is framework agnostic, and best if you have at least a basic understanding of JavaScript.

Images account for 50% of the bytes downloaded to load a website. How can you make sure that your users only download the smallest image necessary while preserving image quality? In this talk, we'll focus on the underlying concepts in HTML and CSS for serving responsive images, which you can take with you no matter which tool you use.Which file formats suit which image types best? How can you use art direction in images to show the best image for a viewport layout? Come learn about this and more!

Fonts are lovely but can slow down our loads. How can we make them faster? We all love fonts. From Google Fonts to Typekit, Hoefler&Co and more, they give character and tone to our websites. The down side of fonts is that they can really slow down our loads. In this talk we'll learn about common pitfalls like critical requests depth and how to use resource hints to play tricks with latency to load web applications faster. We'll walk through a network profile to understand what's going on in the browser and how to make it faster.

Help! My app bundle is 5MB! My users are angry that my app is so slow! It’s easy to forget that performance matters when we are under pressure to deliver features quickly. What data should we use to inform our decisions? From code splitting, lazy loading, and tree shaking to bundle analysis, progressive rendering, and modern transpiling, come learn how you can deliver a better experience to your users with high-performing front-end apps. This talk is library-agnostic (React, Angular, Vue, etc.).

Every user’s hardware is different, and processing speed can hinder user experience on client-side rendered React applications. Server-side rendering and code-splitting can drastically improve user experience by minimizing the work that the client has to do. It’s easy to get lost in the lingo, so come learn what it all means and how to easily build universal React apps using the Next.js framework. We’ll walk through the concepts and use code examples to cement your understanding. You’ll get the most out of this session if you’re comfortable with React and ES6 syntax.

Get a taste of why developers are so happy with React and learn about how some of the concepts are similar or different from the Drupal and PHP world

Published on React ❤ Drupal (Osio Labs)

App loading and run-time affect your bottom line. Fancy features aren’t worth anything if users leave the app out of frustration. Every second counts! React is super fast, but you could be shooting yourself in the foot with design decisions. Come learn how to make your React apps lightning fast! Page abandonment increases with every second of load time.Also, profiling and debugging performance issues can seem like an overwhelming topic to learn.In this session, we’ll cover the usual suspects of performance issues, from the basics of using the correct build, to the fundamentals of immutable data, to higher- level tools like Perf, shouldComponentUpdate, PureComponent, and memoizing computed props in Redux. We will both cover the concepts and walk through examples step- by - step so that by the end of this session you will feel like a React Speed Racer.You’ll get the most out of this session if you’re at least comfortable with React and ES6 syntax.

Every user’s hardware is different, and processing speed can hinder user experience on client-side rendered React applications. Server-side rendering and code-splitting can drastically improve user experience by minimizing the work that the client has to do. It’s easy to get lost in the lingo, so come learn what it all means and how to easily build universal React apps using the Next.js framework. We’ll walk through the concepts and use code examples to cement your understanding. You’ll get the most out of this session if you’re comfortable with React and ES6 syntax.