Articles
Vibe Coding a Real Site with AI, Vercel V0, and Cursor
Apr 25, 2025
🕑7 min read
Lately, I've been thinking a lot about "vibe coding" — moving fast, staying in flow, and using AI to accelerate idea exploration rather than getting bogged down in setup.
"Vibe coding," a term popularized by AI researcher Andrej Karpathy, refers to levera...
Vibe Coding with AI
Apr 25, 2025
🕑5 min read
There’s a new kind of developer flow happening, and it doesn’t start with types, diagrams, or frameworks.
It starts with a vibe.
What Is “Vibe Coding”?
We used to architect before we coded. Debate folder structures. Argue about types.
Now? You have an ...
GitHub code spaces
Oct 5, 2024
🕑2 min read
Today I found myself away from my computer, but I needed to update something on my site. I had my iPad, so I decided to give code spaces a try. Considering I’m using a tablet without a keyboard, or a mouse, the experience was generally pleasant.
It’s not...
Chester Half Marathon 2024 - race report
May 20, 2024
🕑8 min read
🏃Run
Despite it being a scorching day, I managed to keep my head cool and beat my target time, with a new PB to boot. There were a number of lessons I learnt from the London Marathon a month ago, which I put into action pre and during the race which really paye...
London Marathon 2024 - Race Report
Apr 21, 2024
🕑16 min read
This is THE race I have been trying to run for years, and when it finally came, it didn’t disappoint despite a sub-par performance on the day. I accomplished most of what I set out to achieve, and had an amazing day.
Goals
3:20:00 - Fail
3:30:00 - Fail
...
Running the London Marathon for WWF
Mar 1, 2024
🕑2 min read
🏃Run
As many of you my know, I'm passionate about my running and the environment, and this year I've been fortunate enough to secure a spot in the London Marathon, and I'm running not just for personal achievement, but to support a cause close to my heart: WWF,...
Garmin Epix daily workout suggestions
Jan 29, 2024
🕑1 min read
🏃Run
If you manage to disable the suggested workouts feature on your Garmin Watch, then there is a quick way to re-enable it.
Go to your "Race calendar" > Select your event > Click start/stop button and an option for "Daily suggestions" will appear. You can c...
A guide to GROQ
Aug 5, 2023
🕑14 min read
GROQ (Graph Relational Object Queries) is a query language that was created by Sanity to query CMS data. It’s a flexible query language and the use of projections makes it a powerful tool to construct complex and efficient data queries.
GROQ vs. GraphQL
...
GROQ vs GraphQL
Aug 4, 2023
🕑2 min read
While GROQ is nominally similar to GraphQL, there are subtle differences. Here's a quick run down of the similarities and differences, so that you can understand the reasons for GROQs existence, and some of it’s use-cases, before using it yourself
Both us...
Simplify GROQ query with optional fields
May 21, 2023
🕑1 min read
🧠Tip
In working with Sanity and GROQ, there might be instances where you need to filter data using an optional field, and want a default value to kick in when null values are returned. For instance, consider an __i18n field added after a significant amount of c...
Filtering data within a GROQ query
May 20, 2023
🕑1 min read
🧠Tip
When dealing with multiple sets of similar data, it's not uncommon to encounter overlapping filters. Let's say you need to pull up all your articles, then categorize them into two subsets: English and French. You might think you need three separate queries...