{
  "generatedAt": "2026-09-16T11:16:49Z",
  "entries": [
    {
      "dayNumber": 18,
      "dateLabel": "Sep 15, 2026",
      "title": "Two articles shipped, one arithmetic error caught before it went live.",
      "body": "This week shipped two blog posts: a measurement experiment with Malcv1 audio and an evidence-packet guide. The measurement post had a verified arithmetic error in its draft (fifteen minutes, not twenty) that was caught and corrected before publication. A Cloudflare-transformed production readback verification was added after the second article exposed that static links could mask failed discovery hydration. The Hermes remote gateway was set up over Tailscale with Nous Portal OAuth so an Omarchy Linux desktop can drive the Mac backend securely. Calendar data refreshed daily. Outreach, conversations, proposals, and revenue: UNKNOWN.",
      "tags": [
        "full week",
        "shipped",
        "arithmetic correction",
        "remote gateway"
      ],
      "url": "https://malcmitch.com/building/"
    },
    {
      "dayNumber": 17,
      "dateLabel": "Sep 9, 2026",
      "title": "The content engine is shipping, but the gates still own the result.",
      "body": "This partial week shipped four blog posts with MP3 companions, launched the /start/ decision quiz across the site, moved the contact handoff behind a server-side boundary, and refreshed the AI events data. The repository also records a Playwright single-worker fix after flaky suite failures. The operating lesson is simple: more publishing is only useful when approval, testing, and security boundaries stay visible. Outreach, conversations, proposals, and revenue: UNKNOWN.",
      "tags": [
        "partial week",
        "shipped",
        "content engine",
        "verification"
      ],
      "url": "https://malcmitch.com/building/"
    },
    {
      "dateLabel": "Sep 1, 2026",
      "title": "The build log finally caught up with what the site actually shipped",
      "body": "The gap was simple: the page still showed August entries while the site had already added a blog, article publishing, accent controls, and a repaired approval loop. Today I fixed the log itself so the public record matches the real work instead of freezing on the calendar phase.",
      "tags": [
        "shipped",
        "build log",
        "cleanup"
      ],
      "url": "https://malcmitch.com/building/"
    },
    {
      "dateLabel": "Sep 1, 2026",
      "title": "The site now drafts in Obsidian first and only touches git after approval",
      "body": "The first blog-review cron failed because a destructive repo reset was in the draft path. That was bad architecture. I split the workflow in two: the draft now lives in Obsidian and arrives in Telegram for approval, while git, tests, deploy, and alias only happen after I explicitly approve the post.",
      "tags": [
        "agents",
        "approval",
        "automation"
      ],
      "url": null
    },
    {
      "dateLabel": "Sep 1, 2026",
      "title": "The first AI Tips article is live, and the voice experiment already taught me something",
      "body": "I published a practical post on checking AI answers before you trust them. It is live on the blog, wired into the category pages, and visible on the homepage. I also shipped a companion voice pass, and the honest result is that the voice itself is not good enough yet. That is pushing the next iteration toward a real article voice agent instead of a generic read-aloud.",
      "tags": [
        "shipped",
        "blog",
        "voice"
      ],
      "url": "https://malcmitch.com/blog/posts/how-to-check-an-ai-answer-before-you-trust-it/"
    },
    {
      "dateLabel": "Aug 31, 2026",
      "title": "The blog became a real surface instead of an idea",
      "body": "The site now has a static blog hub, category pages, seeded posts, internal discovery paths, and sitemap coverage. That matters because the website is supposed to teach, not just advertise. The blog gives people a reason to come back for useful AI tips, grounded news, and lessons from the self-evolving-site experiment.",
      "tags": [
        "shipped",
        "blog",
        "seo"
      ],
      "url": "https://malcmitch.com/blog/"
    },
    {
      "dateLabel": "Aug 31, 2026",
      "title": "Homepage accent controls shipped without turning the site into a toy",
      "body": "I added a subtle accent wheel, a Random button, and a hidden rainbow mode without letting the whole page turn into unreadable gimmick text. The interaction only moves accent surfaces, keeps body copy stable, and feels more like a controlled product detail than a novelty effect.",
      "tags": [
        "shipped",
        "design",
        "homepage"
      ],
      "url": "https://malcmitch.com/"
    }
  ]
}
