log in
consulting hosting industries the daily tools about contact
· 6 min read · GraphQL

GraphQL Caching Is a Different Sport — Most Teams Miss It

HTTP caching assumptions break the moment you go GraphQL. Here's what actually works and what I've learned shipping it in production.

Most teams switching to GraphQL don't realize they've just opted out of a decade of HTTP caching infrastructure — until they're staring at a database on fire and a CDN that's doing absolutely nothing. I've built GraphQL APIs for a few clients now — a biotech client doing lab data queries, a real estate platform…

Read the daily →
· 6 min read · Postgres

JSONB Everywhere Is a Smell

JSONB is one of Postgres's best features. It's also one of the easiest to abuse. Here's where I draw the line.

JSONB saved me on a project once, then nearly wrecked a different one. The difference wasn't the feature — it was whether I was using it to solve a real modeling problem or just to avoid making a decision. I see this pattern constantly in codebases I inherit: a column of type on half the tables, a blob on the other…

Read the daily →
· 6 min read · GraphQL

Why I Went Back to REST After Two Years on GraphQL

I bought into GraphQL hard. After two years and several production apps, I switched back to REST. Here's the honest post-mortem.

I was a GraphQL believer. I gave the conference talk in my head, I migrated a production codebase to it, I evangelized it to clients. Two years later I ripped it out of two projects and went back to REST. This is not a hot take — it's a post-mortem. What GraphQL Promised Me The pitch is genuinely compelling. One…

Read the daily →
· 6 min read · Postgres

When PgBouncer Becomes the Bottleneck Instead of the Fix

PgBouncer saved my Postgres clusters for years — until it quietly became the thing killing them. Here's what I missed.

PgBouncer fixed my Postgres connection problems for years without me really understanding why it worked. Then I hit a situation where it stopped working, and I had to actually understand it. That's what this post is about. The Problem PgBouncer Actually Solves Postgres is not Node. It doesn't handle thousands of…

Read the daily →
· 6 min read · Better Stack

Better Stack: The Uptime + Logs + Status Page Trio I Keep Reaching For

Better Stack quietly bundles three tools I used to stitch together from three vendors. It's not perfect, but it's close enough that I've migrated most of my managed hosting clients to it.

Better Stack: The Uptime + Logs + Status Page Trio I Keep Reaching For I spent years paying three separate vendors to do three things that logically belong together: uptime monitoring, log aggregation, and a public status page. Better Stack bundles all three, the API is clean, and the pricing doesn't make me want to…

Read the daily →