I'm Grant.

I like to write.

Grant's ugly face
June 2024
CSS Loading Speedometer
A little SVG + CSS animations driven loading speedometer.
September 2023
The power of minimal reproducible examples
The act of creating minimal reproducible examples will make you a better engineer, and drastically improve your chances of getting bugs fixed.
August 2023
The math of zooming in
The UI math of zooming in while preserving focal point, covering a Linear Algebra approach as well as a more intuitive approach of window mapping.
August 2023
My keyboard ergonomics journey as an engineer
My journey to find an ergonomic but productive keyboard for my software engineering purposes.
August 2023
Automated Open Graph Images with Astro
How to write a custom Astro route to generate Open Graph images for you based on your content.
August 2023
Keeping it tight with Astro.
For a couple years, my personal site has been built on Next.js. While in the process of adding a blog feature, I figured it was a good chance to migrate to Astro.
July 2023
A New Perspective: Sanity Perspectives and Live Previews
In this post I'll walk through Sanity Perspectives and how they've drastically simplified our live preview workflows.
July 2023
Scaling with Confidence: Next Generation Query Building with GROQD and Sanity
Introducing GROQD: zero build step query composition, runtime validation & type-safety all declared in one place.
June 2023
Build a Text Summarizer in 100 Lines of Code with Vercel AI SDK
Vercel recently announced their AI SDK. I wanted to see just how easy it was to get up and running with this Vercel AI SDK and build something simple, but with some potential usefulness.
June 2023
Powering Our Website's Evolution: Next.js App Router and Sanity CMS in Action
What we've learned building web apps using Sanity and Next.js App Router that is great for content authors and great for end users while rearchitecting our website.
February 2023
How we reduced image bandwidth by 86% migrating our media library to Cloudinary
Merely migrating to Cloudinary is saving us significant image bandwidth, which is great for our end-users and great for the world.
October 2022
What the hex?
If you’re a designer or frontend developer, chances are you’ve happened upon hex color codes (such as `#ff6d91`). Have you ever wondered what the hex you’re looking at when working with hex color codes? In this post we’re going to break down these hex color codes and how they relate to RGB colors.
September 2022
Screen and Webcam Mixing and Recording with Web APIs
There are great native applications on the market for screen recording and editing. While tools like these include a whole host of powerful editing features, for short-form content that doesn’t require post-processing, they might be overkill. I wanted to explore how far browser technology has come in the way of screen sharing and recording, and attempt to create a tool that would allow me to quickly create short-form technical video content with a little bit of flare.
July 2021
What to Expect When Moving from React Web to React Native
If you're a React Web engineer looking to build native mobile applications, React Native is a great choice. But it IS a little different. Here's where the paths diverge.
April 2021
Animations in React Native: Performance and Reason-about-ability with Reanimated 2
In this article, I'm going to discuss one of the aforementioned challenges of mobile app development with RN—building smooth animations and gestures—and a tool in the RN ecosystem, React Native Reanimated, that helps us take on this challenge without fear.
October 2020
React Native Tilt Carousel Animation
It turns out, React Native FlatLists can do a ton of cool stuff! In this post, we'll look at one of those things: building a carousel that has a fancy tilt effect.
April 2018
A Keyboard Display using CSS Grid
I started working on a project for a client, that consists of creating web-based typing lessons. Part of the requirement was to create a non-interactive on-screen keyboard where the keys light up on keystroke.