Writing
Thoughts on code, life and everything in between.
2026
- Rebuilding My Site from Gatsby to Astro with a Team of Very Fast Interns
How I used Claude Code and mattpocock/skills to grill, ticket, design and ship a full rebuild of this site in two evenings.
2025
- When 2500+ Pages Need Summaries: Automating Content Previews with Local AI
How we generated summaries for 2500+ Craft CMS entries with a local Qwen2.5 model on Docker Model Runner, turning 125+ hours of manual work into about 3 hours of processing.
2021
- Craft CMS, Gatsby & Netlify with Live Preview! (Part 4)
In this part we will implement Live Preview for Craft content.
- Craft CMS, Gatsby & Netlify with Live Preview! (Part 3)
In this part we will install and configure Gatsby to query Craft content.
- Craft CMS, Gatsby & Netlify with Live Preview! (Part 2)
In this part we will install and configure Craft in headless mode to be queried by Gatsby.
- Craft CMS, Gatsby & Netlify with Live Preview! (Part 1)
A deep dive on creating a CraftCMS using Gatsby and hosted on Netlify
- Bulk Generate SVG QR Codes from a CSV File with Python
Bypass your frustration with third-party QR code services by creating your own QR code generator in python.
- Content Blocks in Craft CMS Using Matrix Fields
Implement easy to maintain content blocks in CraftCMS using Matrix and Twig
- Create social media image programmatically - Part 2
How to create and save an social media image with Node.js and Canvas
- Create social media image programmatically - Part 1
How to create and save an social media image with Node.js and Canvas
- Updating Gatsby Website to Version 3
I will be sharing my experience on updating my Gatsby Site to the latest V3.
- Build an React toggle switch for Dark Mode
Create a stylish, animated, React toggle switch using Tailwind and a few lines of JavaScript. Full code examples included.
- JavaScript & Things
Some thoughts on JavaScript, functional programming and how they can make life easy on your everyday developer.
- Hello World 2021!
New beginnings, new writings, new challenges.