Skip to content

Blog

How MCP Became the Standard

In the previous post I argued that an MCP server is just an adapter with no intelligence of its own. Once you frame it that way, a new question appears. There are countless ways to build a dumb adapter that wraps some service’s API. So why did this one convention, MCP, take the seat of the standard that connects LLMs to tools? The answer is not some flashy feature. It is in how the protocol was designed.

Read more →

2026-06-04

An MCP Server Holds Credentials, Not Intelligence

There is a SaaS tool we use internally. I wanted to hand the AI the job of writing and editing content inside it. While looking for a way, the word MCP kept coming up, so I decided to wire it in. But the moment I actually reached for it, three unsettled questions stuck in my head. What on earth is inside this MCP server? How does my project connect to it? Once connected, how does the project use it? The three questions had really branched off from a single misunderstanding. Once I stripped that misunderstanding away, all three resolved at once.

Read more →

2026-06-04

Building an AI Agent to Handle Issues End to End

I pasted three issue links into the chat, typed “handle these,” and walked away. When I came back and opened the issue tracker, each of the three carried a comment explaining how it was handled and the deployment path on the test server. Two were in a state where I only needed to verify them before closing. One had been left undecided because the request itself was ambiguous, with the reason for holding written out.

Read more →

2026-06-03

I Stopped Deciding Where to Put Each Document

I was about to save a note on something I’d just learned, and I paused in front of the folder list. Where should this go so I can find it again later? Under docs? Inside the project folder? Or should I carve out a separate notes? After a second of hesitation I drop it somewhere, roughly. And two months later, I have no memory of where I put it. It’s a trivial hesitation. But this moment returns every time I try to turn something into an asset. When I write up a newly adopted technology, when I finish a key piece of work that will be a handoff point, when I file away the research I gathered before starting new development. Every time there’s something worth recording, the same friction repeats, and running several projects alone, this small decision piles up everywhere. Worse, classifying by mood in the moment blurs the rules, until later I can’t even search for the thing.

Read more →

2026-06-01

agorea: A Side Project to See Who's on My Ballot at a Glance

There’s a scene that repeats every election. The mailbox fills up with campaign flyers, names scroll past in the news, and yet it’s hard to see at a glance: “So what am I voting for in my district, and what do the people running actually stand for?” Metropolitan and local executives, district and proportional council members, the education superintendent — one person has to mark several ballots, and the information for all of it is scattered everywhere.

Read more →

2026-05-31

Length Beats Complexity: Rethinking Password Rules

While designing user authentication for a new system, my hand stopped for a moment. “Passwords must be at least 8 characters and include at least 3 of: uppercase letters, lowercase letters, numbers, and special characters.” — this sentence was so familiar that I had never once questioned it. Nearly every site has a rule shaped like this, and I was about to copy that shape verbatim. But a line I had seen somewhere came back to me. “The person who created the password complexity rules said he now regrets them.” I went back to check whether that was really said, and while I was at it, I also pulled together where current recommendations actually stand. To put the conclusion first: the rule we use as a matter of course is no longer recommended.

Read more →

2026-05-28

Pointing Claude Code at 'That Button' with data-testid and a Bookmarklet

I came up as a server developer, but once I started leaning on Claude Code in earnest, I found myself reaching into frontend work and full-stack system development. The friction I hit most often along the way was this. “On the main page, that little X button next to the search button — change its color a bit.” Say that, and Claude has no way of knowing which file, which component. So either I go find the location myself and hand it over, or Claude flails for a while and ends up touching the wrong thing. One of the two.

Read more →

2026-05-27