Draft1

For years, I’ve been too lazy to update my website. I’ve tried a few times, but things always became more complicated than I wanted. Updating the site turned into another project I didn’t particularly want to work on.

I think models have reached a point where I can ask them to make something simple, and they can actually make something simple.

1. Reboot

I started my reboot of this site with Codex. I had it copy my existing website, build a small CMS, and create scripts to generate static HTML and deploy it to S3.

But I was already writing these articles as documents in Linear. Moving them into another editor seemed unnecessary, so told Codex change the tool so that it pulls the content from Linear instead. I could write a document, run a local command, and update the site.

That worked, but I still needed the codebase and credentials set up on each machine. And I couldn’t publish from my phone. Writing could happen anywhere; publishing depended on having a computer ready.

So I moved that part into Linear too.

2. Moving publishing into Linear

I asked the Linear agent to look at the GitHub repository and help me get it working. I enabled GitHub, Coding Sessions, and Code Intelligence, added some AI credits, and got to work.

Linear coding environment settings for the ksaa/karrisaarinen repository

The agent got the code, started a sandbox, and set up the environment. It needed publishing credentials, which I added as environment secrets in settings rather than pasting them into the conversation. Then it tested the credentials and ran the build. It just worked.

Publisher conversation showing the completed safe publishing workflow and merged pull request

Moving the workflow into Linear took maybe twenty minutes and a couple of dollars in credits.

I now have an agent chat called “Publisher” that can build and deploy the site to S3 by telling it to do it.

How the site works

I write articles as documents in Linear and work on them with the agent. When they’re ready, I ask it to publish.

  • Behind that is a Git repository with the site’s design and build scripts.

  • The build pulls documents from Linear, optimizes images, generates static pages, and publishes to S3, served through CloudFront. It also handles the article index, RSS feed, sitemap, and sharing metadata.

  • Linear runs the code in a cloud sandbox, whether I’m publishing an article or changing the site.

Write, build and publish from anywhere

Linear holds the articles, the changes, and the conversations around them. For this post I asked the coding agent to add the lightbox to see the images in larger size. It came back with a PR showing a screenshot.

Merged pull request for the blog image lightbox, with an enlarged image preview

I now longer need to remember what commands to run, just say publish this article.

Publisher conversation confirming the site was republished and requesting publication of a document

What comes next

Next, I’m thinking about using Loops to suggest new topics topics from recent work and Granola meeting notes.

A loop could also publish articles when I mark them ready. I’d still decide what goes public, without having to remember that last step.