The Web and Stuff.
I like to make things—usually with web technologies, and usually for the web.
At the moment I'm most interested in jamstack and design systems. I work with things like React, Next.js, node.js, and GraphQL. Although there are parts of the stack I'm very focused on, I am most passionate about making stuff.
Blah blah blah I make websites.
Blog posts
JSON Feed Types
I've been working on adding JSON Feed to my blog, but I was surprised to discover that nobody has published JSON Feed TypeScript types yet. So I made some.
Missing Sanity documents in unauthenticated query results
If you notice documents missing from the results of unauthenticated Sanity queries, check whether the affected document ids are a path (a string segmented by periods).
I added dynamic Open Graph images to my site
Using Next.js and Puppeteer, I created a set of dynamic OG images that reuse the design system components from my site.
Component-level static props in Next.js
The Next-CMS project gives us a peek at component-level static props in Next.js. How does it work, and how can we use the pattern ourselves?
"Why I Left Gulp and Grunt for npm Scripts"—Cory House
Cory House provides many good reasons for using npm scripts instead of an alternative task runner such as Gulp.
Projects
🌿 Monstera
CSS-in-JS helper library.
🔴 Connect 4
Connect 4 game built with React and TypeScript.
⏳ Little Timer
Tiny CLI based time tracking tool.
🥪 Lipsumator
TypeScript library and Deno CLI for generating placeholder text.
📓 Frontend Guiding Principles
Handbook explaining my guiding principles for frontend web development.
Recent work
Created a song picker for Sanity CMS using serverless functions, Sanity UI, the iTunes API, and the Odesli API.
Created React Native apps with realtime maps and complicated backend API integrations.
Built a GraphQL API layer over an old and inconsistent REST API.
Created TypeScript types for the JSON Feed spec.
Created a helper library for generating Open Graph preview images with serverless functions.
Created a headless site builder with WordPress and Next.js.