How I Built an AI System That Codes, Runs and Improves Itself · Fatih Koç<br>A few weeks ago, during a meeting at my day job, my phone buzzed. My website had picked the topic from trend data days earlier, written the draft, scored it against an editorial rubric and opened a pull request with the finished article, the same way it opens PRs to change its own code. I skimmed it during a coffee break and merged. That merge published the article and pushed it out to social media, and it was my entire involvement in that day’s publishing.<br>The site is DevOps Start, a content site I built with AI and then handed back to AI to run. It discovers topics, writes articles, gates their quality, opens a pull request for each finished piece, distributes what I merge, reads its own analytics and proposes improvements to its own pipeline. Its own code changes arrive the same way, as pull requests from nightly routines. My only recurring job is reviewing those PRs over breakfast and merging the ones that pass.<br>Let me declare this clearly, because the whole point gets lost otherwise. This was never about traffic or revenue. The real project is a self-improving AI system, one that writes its own code, ships it, runs a live site end to end and rewrites its own pipeline when the numbers say it should. DevOps Start is just the simplest thing I could point it at. Building that system was the goal. The site is only where I proved it works.<br>It Started With RSS Fatigue
Link to heading<br>For years my mornings began the same way. Open the RSS reader, stare at a few hundred unread posts, scroll for ten minutes, mark all as read, feel vaguely guilty. Every feed was worth following in theory. In practice I couldn’t tell which five posts actually mattered for my work without reading all three hundred.<br>I didn’t want more content. I wanted an agent that reads everything and hands me the handful of posts worth my time, with summaries. So I started building one. Feed ingestion first, then clustering to spot what was moving, then ranking against my interests, then summaries.<br>Somewhere in the middle of that build I noticed something. Topic selection, relevance judgment, summarizing, scheduling. My little reading tool was doing editorial work.<br>Can AI Replace a Tech Editor
Link to heading<br>Before I moved into infrastructure work I was a tech and game editor. Every editor picked topics, wrote their own pieces, edited their own copy, held themselves to the style guide and shipped on schedule, and the only person above us was the editor-in-chief. When I saw my RSS agent picking topics on its own, the obvious experiment wouldn’t leave me alone. Could I rebuild my old job as software, on the DevOps beat this time, and would the output survive my own editorial standards?<br>So the reading tool became a newsroom. Articles have to score 9.1 out of 10 against a rubric before they’re allowed to ship, and plenty get rejected. A dedup gate stops the site from quietly rewriting its own archive. The style rules ban the fingerprints editors now spot instantly in AI text, the em dashes, the overused AI vocabulary, the inflated transition phrases. And the site says openly that AI writes the articles, under a named editor identity, because pretending otherwise is exactly the kind of thing an editor exists to kill.<br>That last rule matters more than it looks. The experiment was never “can I trick readers”. It was “can the machine meet the editorial bar I hold my own writing to”.<br>What a Self-Running AI System Actually Looks Like
Link to heading<br>There is no server anywhere in this system. Nothing to patch, nothing to reboot, no monthly bill.<br>The site itself is Astro, built and hosted on Cloudflare Pages. The brain is a set of scheduled jobs, GitHub Actions cron workflows for the deterministic work and scheduled Claude routines on claude.ai for everything that needs judgment.<br>The loop runs almost entirely without me, with one deliberate exception I will get to. Trend discovery finds candidate topics and queues them. Each weekday a content routine picks from the queue, writes, scores against the rubric, then either opens a pull request with the passing draft or rejects it outright. Nothing goes public until I merge that PR, the same review gate its own code changes pass through. Once I merge, a distribution workflow fans the article out across X, Bluesky, Reddit and Dev.to, and a weekly digest is auto-drafted for the newsletter, which is switched off for now. Site and social analytics come back after each run. Once a week an improvement analyst reads those numbers plus competitor snapshots and proposes changes. Accepted proposals become goals in a queue, and a nightly autodev lane picks up goals, opens pull requests and merges the safe ones when CI is green, the same green-pipeline discipline I use for infrastructure code. Observe, decide, act, verify. An experiment ledger keeps everyone honest, and every change eventually...