Skip to content
JR Cottam

Notes

Search notes and jump to a post. Press ⌘K (Mac) or Ctrl+K (Windows) to open anytime.

Learnings from the field

Notes

I Automated the Last Mile of Every PR

Every PR has a tax — branching, rebasing, linting, changelogs, docs, PR descriptions. I built a coding agent skill that handles all of it. Say /ship and mean it.

Read (6 min) →

Shipping more than ever—or just think you are? Let's measure it.

Every team thinks they're shipping fast. Most have no way to prove it. Here's a self-hosted dashboard architecture that turns GitHub, ADO, and Cursor data into one honest view.

Read (4 min) →

Build MCP Servers on Your Favorite Stack

MCP servers don't play nicely with Bun and Hono out of the box. Vercel's mcp-handler fixes that. Here's exactly how I set it up.

Read (4 min) →

Stream AI Responses in Production

Batch responses make AI feel slow. Streaming fixes the perception problem. Here's the pattern I use with Hono and the Vercel AI SDK.

Read (2 min) →

How I Actually Use Claude Code

Not as an autocomplete. Not as a search engine. Here's the workflow that makes it genuinely useful for production engineering.

Read (3 min) →

Cypress.io in a React App in Under 5 Minutes

How to install Cypress, write your first test, test UI interactions, and verify mobile layouts — all in a React app you can clone and run today.

Read (2 min) →

Progressive Image Loading with Cloudinary

How to use Cloudinary's real-time image transformations to serve low-quality placeholders before high-quality images load — reducing flicker, bandwidth, and perceived wait time.

Read (2 min) →

Running Nuxt in Parallel with Express

How to wire Nuxt and Express together so you get server-side rendering for the frontend and a real API layer on the backend — both in one Node process.

Read (1 min) →

Subscribe to my notes

Stay in the loop on what I'm building and thinking about.