notrab.dev

The Geordie Webmaster

Noticing my mental modes when coding with AI

Published January 8th, 2026

Lately I’ve been paying attention to how my mindset changes when I code with AI. It’s not just that things are faster. It actually feels like switching between different mental modes.

Sometimes I’m in what I think of as vibe coding. This is the experimental phase. It’s fast, playful, and driven by momentum. There’s a bit of an adrenaline rush in seeing ideas turn into code almost instantly. In this mode, my critical thinking is intentionally dialed down. I’m exploring what’s possible, not worrying too much about being right yet.

Read more

Rebuilding in Public

Published January 4th, 2026

I started rebuilding this site on Christmas Day, once everyone had gone to bed. One of my first ships of 2026.

I wanted to keep the pixelated look that Serge designed last year, but with a throwback to the early days of my career... WordPress in the late 90s, and the K2 theme.

Read more

Two Years at Turso

Published October 17th, 2025 in #turso, #career

The last two years at Turso have seen me wear many hats. Developer Advocate, Engineer, Marketer, Writer, and Product tinkerer.

I've made the decision to take on a new challenge, and will be leaving Turso at the end of October, marking my two year anniversary. Here's a look back at what I achieved.

Read more

Building a GraphQL Cart API with Durable Objects, MCP, and Drizzle

Published October 7th, 2025

I've been experimenting with Cloudflare Durable Objects for a while now, and recently shipped a rewrite of CartQL using them. The architecture turned out pretty interesting so I wanted to share how the pieces fit together.

CartQL is a shopping cart API. Each cart needs to be its own isolated unit of state that can handle mutations, track items, and eventually convert into an order. Durable Objects are a perfect fit here because each cart ID maps to exactly one DO instance with its own SQLite database.

Read more

Dynamic Theme Switching with CSS Variables and Tailwind

Published September 16th, 2025

Building flexible, themeable interfaces doesn't have to be complex.

By combining Tailwind's data attribute selectors with environment variables, you can create a clean system that switches themes dynamically without JavaScript or complex state management. Shout out to Matt Evans for teaching me this trick in a recent collaboration.

Read more

Build Your Own Newsletter Service with Resend

Published July 24th, 2025

This website runs on Astro, and like many of my other projects, I've built a custom newsletter system rather than reaching for a bespoke newsletter third-party service. Here's why and how I did it.

Most newsletter services either cost too much for small lists or come with limitations that don't fit how I want to engage with readers. I wanted something lightweight, cost-effective, and completely under my control.

Read more