← Back to blog

First Post: A Blog That Edits Itself

How the new /blog/ section came to be, and what makes it different from the Medium one.

This is the first post on the new blog section of jchen42.com.

The site you're reading has been around since I learned Django following Harvard CS50. It was always meant to be a place to publish things, but for years that meant 'the projects page' and nothing else.

This week that changed. I added two pieces to the site that, together, make casual publishing basically free:

  1. An MCP server — Model Context Protocol, the open standard Anthropic shipped in late 2024 — that gives AI assistants direct read/write access to my Django models.
  2. An OAuth 2.0 layer on top so I can connect the MCP from real clients like Claude's Cowork without leaking a long-lived bearer token.

The reason that matters for writing is that there's no longer a context-switch between 'I have an idea I want to publish' and 'the published version is on the internet.' I draft the post in a chat with Claude, it calls create_post against my server, and the post is live on jchen42.com/blog/ a few seconds later.

This very post was written that way.

Longer, more polished essays will continue to land on Medium. This corner of the site is for the unpolished stuff: weeknotes, things I'm figuring out, dev-log style updates on what the website itself is becoming.

Welcome.