~/leohuynh.dev/log

Log

Writing on web development, Shopify Hydrogen, TypeScript, and AI workflows.

28 posts · newest first

Building a Smooth Blurry Loading Effect for Images in Shopify Hydrogen

Learn how to create a beautiful blurry loading effect for images in Shopify Hydrogen that enhances user experience while images load.

shopify

Crawling Goodreads books data in Node.js

Learn how to extract, crawl, and convert your Goodreads books data using Node.js. This guide covers both the RSS feed and CSV export methods.

goodreads

Enhance Github Copilot code generation with custom instructions

How I use GitHub Copilot in VS Code, along with my own custom instructions, to boost productivity, keep my code consistent, and make writing (and coding) more fun!

github

Shopify Hydrogen: build a fully functional price range filter component

A detailed guide on how to build a fully functional price range filter component for collection pages in Shopify Hydrogen.

shopify

Minimal setup list for web developers on a fresh macOS install

Having a new Mac device is always exciting for every developer, but it can also be challenging, especially when it comes to setting up a new dev environment. Here is a list of the minimal setup you need to get started with web development on a fresh macOS install.

dev-setup

How to create an image with blurry loading effect in NextJS

NextJS has provided a built-in image component that has many useful features, we can leverage them with some custom styles to create a beautiful image with a blurry loading effect.

nextjs

How to get your Namecheap private email to work with Vercel DNS

A step by step guide on how to get your Namecheap private email to work with Vercel DNS.

private-email

On Tailwind CSS arbitrary values

How to use arbitrary values in Tailwind CSS to create custom styles for your components. Some nice tips to make your Tailwind CSS workflow more efficient.

tailwind-css

Does JavaScript Promise.all() run in parallel or sequential?

JavaScript is a single-threaded programming language, so it can't run multiple things at the same time, Promise.all() actually runs promises concurrently, not in parallel!. Let's dive in to see how it works.

javascript