{"slug": "7-articles-in-4-years-then-10-in-a-month-the-blog-i-kept-not-starting", "title": "7 articles in 4 years, then 10 in a month: the blog I kept not starting", "summary": "A Wix infrastructure engineer built a personal blog pipeline in which Claude Code drafts each post from the engineer's PRs, notes and logs, while Wix Headless handles hosting, domain, subscribe form and contact list. The setup produced 10 posts in the month after catchkill9.dev launched, versus 7 in the preceding four years, with a check.py script rejecting drafts containing em dashes, AI-sounding words, broken links or a first paragraph without a number. The engineer said the agent's first draft wrongly credited a colleague's Wix Headless guide as the inspiration, an error caught only by memory because no number was available to verify.", "body_md": "From November 2020 to July 2024 I published 7 articles, on Medium and LinkedIn. In the month since catchkill9.dev went live, 10 more. Nothing about my job changed in between. What changed is that an AI agent now writes the first draft every time I do something worth telling, and Wix Headless runs the site so I never have to. Disclosure up front: I work at Wix, on the infra team behind Velo. This is a personal site on a paid plan, not a Wix project.\n\nThe cover is my own strip, after an old joke from xkcd [#664](https://xkcd.com/664/), \"Academia vs. Business\".\n\nI spent most of my career in the middle panel. I find why pods hang in Terminating, or a containerd trap that eats snapshots, or the one-line gVisor fix for a hang that got past my own safety net. It goes into a PR description and a Slack thread. Then the next ticket arrives and the story is gone.\n\nI always wanted the blog. Somewhere to put this stuff where a stranger with the same bug could find it. Every attempt died the same way: writing one post well took a weekend, and the site around it took another. Seven posts in four years is what that pace looks like.\n\nI had a folder of half-written Markdown about containers. One evening I gave it to Claude Code with a short wish list: one page per article, tags, light and dark, RSS. It built an Astro site, wrote the pages and the CSS, and committed as it went. I steered. It typed. The first site commit landed on the evening of 28 September. The next morning the site was live on Wix hosting, and two hours later on its own domain.\n\nWix did the parts that killed my earlier attempts. Hosting and the domain came with the plan. Robots.txt and an llms.txt for AI crawlers came from the dashboard. The subscribe box is the actual headless part: the reader's browser gets an anonymous token from Wix, submits a Wix Forms entry, and the reader lands in Wix Contacts. My day job is keeping thousands of sandboxes alive for other people's code. My own blog runs zero servers that I have to keep up.\n\n```\nDay job              Claude Code                     Wix Headless\nI fix something  ->  Article, card, LinkedIn draft  ->  Release\nPR and notes         I read and push back               Live post\n```\n\n*Everything after \"I fix something\" used to cost me a weekend.*\n\nI'm still the author of what happened. The agent turns my PR, my notes and the logs into a draft in my voice, checks every number against its source, draws the card, and releases the site. The story is mine to check, and I read, argue and cut.\n\nIt mattered on this post. The first draft said a colleague's guide to Wix Headless was what got me started. It read well, and it was wrong: the guide came out 9 days after the blog went live. No script catches that, because there's no number in the sentence to check. I caught it because I remembered the order, and the agent rewrote the section.\n\nThe whole blog is one Git repo. Every post is a folder: a README with a small header (title, date, status, platforms), the article in Markdown, and the card. A calendar file lists what's planned and what's out. Nothing lives in a CMS or a dashboard, so the agent can read and change all of it.\n\n| Piece | What it does | \n|---|---|\n| Astro site | Builds every post marked Posted into static HTML, one exact `.html` path per page | \n| Skills | Plain-text playbooks the agent follows: the publishing pipeline, my voice, cards, LinkedIn, distribution, site QA | \n| `check.py` | Fails a draft with em dashes, AI-sounding words, broken links, or a first paragraph with no number | \n| Read score | Ranks a LinkedIn draft against my own past posts and how they actually did | \n| `npm run release` | Builds the site, uploads it to Wix hosting, then pings IndexNow | \n| Wix Headless | Hosting, the domain, the subscribe form and the contact list | \n\nThe voice skill is the part I'd steal first. It's a fingerprint built from about 3,700 messages I actually wrote, on Slack and WhatsApp: how long my sentences run, which words I never use, the jokes I make. Every draft gets scrubbed against it. A separate rules file says what never goes in a post: internal names, dollar figures, exact counts of anything at work, and a short list of stories I've decided not to tell.\n\nPublishing goes in a fixed order. The blog goes first and is always the canonical URL. dev.to picks the post up from the full-content RSS feed as a draft. Medium imports it with the canonical link pointing back. LinkedIn gets a short version with the link in the first comment. The agent releases the blog itself. Everywhere else it drafts, and I press the buttons.\n\nIt also does the chores I would never get to. An IndexNow ping on every release, so search engines hear about changed pages. Comments through GitHub Discussions. Cloudflare Web Analytics, so I know if anyone shows up. Contrast fixes when Lighthouse docked accessibility points. 65 commits to the site folder so far, and I typed almost none of them.\n\nThat was the part I was scared of. Building a blog for nobody is its own kind of middle panel.\n\nIn the first month Cloudflare counted about 1,500 visits and 1,800 page views from 36 countries, bots excluded, led by the US. About 200 of those visits came from daily.dev, from strangers who had never heard of me. Real readers' browsers measured the largest paint at about 1 second at P75, with 94% of loads rated good. Lighthouse gives the site 100 on SEO and best practices on every run, and the homepage answers in about 60 ms once warm.\n\nThe cute-cat requests still come, and the bug hunt is still mine. The difference is the morning after. I fix something worth telling, and a draft is already waiting.\n\nIf you have a folder of things you meant to write up, point an agent at it and let Wix Headless run the site.\n\nThanks to Randall Munroe for the joke I kept living. Site built with Claude Code, hosted on Wix Headless.\n\nNahum Litvin, Lead Platform Engineer.", "url": "https://wpnews.pro/news/7-articles-in-4-years-then-10-in-a-month-the-blog-i-kept-not-starting", "canonical_source": "https://dev.to/nahumlitvin/7-articles-in-4-years-then-10-in-a-month-the-blog-i-kept-not-starting-1ob3", "published_at": "2026-10-30 13:13:48+00:00", "updated_at": "2026-10-30 13:21:07.927260+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "generative-ai", "ai-crawlers", "developer-tools"], "entities": ["Wix", "Claude Code", "Astro", "catchkill9.dev", "Velo", "IndexNow", "Wix Headless"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/7-articles-in-4-years-then-10-in-a-month-the-blog-i-kept-not-starting", "markdown": "https://wpnews.pro/news/7-articles-in-4-years-then-10-in-a-month-the-blog-i-kept-not-starting.md", "text": "https://wpnews.pro/news/7-articles-in-4-years-then-10-in-a-month-the-blog-i-kept-not-starting.txt", "jsonld": "https://wpnews.pro/news/7-articles-in-4-years-then-10-in-a-month-the-blog-i-kept-not-starting.jsonld"}}