<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Doogit — Build register</title><description>Field notes from building SaaS products with AI coding agents.</description><link>https://doogit.com/</link><item><title>1 of 16: auditing my own guardrails</title><link>https://doogit.com/posts/1-of-16-hooks/</link><guid isPermaLink="true">https://doogit.com/posts/1-of-16-hooks/</guid><description>I built sixteen guardrails to stop my AI coding agents from destroying work. Then I audited them like a consultant would. One actually worked.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Compile-green, deploy-broken</title><link>https://doogit.com/posts/compile-green-deploy-broken/</link><guid isPermaLink="true">https://doogit.com/posts/compile-green-deploy-broken/</guid><description>Every test passed and it worked on my laptop. In production, placing PDF signature fields failed four different ways — pdf.js in a serverless runtime — each one invisible until the previous fix.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The regulation in my build pipeline</title><link>https://doogit.com/posts/compliance-as-ci/</link><guid isPermaLink="true">https://doogit.com/posts/compliance-as-ci/</guid><description>A federal statute constrains what my product is allowed to say. An audit found 18 violations in my own copy — so I wired the forbidden phrasings into the build and made shipping one impossible.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The email that shipped three times</title><link>https://doogit.com/posts/email-shipped-three-times/</link><guid isPermaLink="true">https://doogit.com/posts/email-shipped-three-times/</guid><description>I let AI agents build my own email plumbing on top of Resend. The same bug — marking undelivered mail as “sent” — shipped three times before a build gate finally stopped it.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Five days, 140 commits, one detective&apos;s report</title><link>https://doogit.com/posts/five-days-140-commits/</link><guid isPermaLink="true">https://doogit.com/posts/five-days-140-commits/</guid><description>A friend was being stalked. I built an investigation tool to evidence standards in five days — and chose never to publish it.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Knowledge compounds, workarounds don&apos;t</title><link>https://doogit.com/posts/knowledge-compounds/</link><guid isPermaLink="true">https://doogit.com/posts/knowledge-compounds/</guid><description>I analyzed 52 of my own AI coding sessions. The same six problems had been “solved” more than twenty times — and every solution evaporated when the session ended.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Building for a market with an expiration date</title><link>https://doogit.com/posts/market-with-expiration-date/</link><guid isPermaLink="true">https://doogit.com/posts/market-with-expiration-date/</guid><description>A Supreme Court ruling created a multi-billion-dollar refund pool — one that shrinks every month on a fixed legal schedule. A decaying market changes every product decision.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Never make a user wait on an AI</title><link>https://doogit.com/posts/never-await-an-llm/</link><guid isPermaLink="true">https://doogit.com/posts/never-await-an-llm/</guid><description>My first product&apos;s worst bug wasn&apos;t the AI being wrong. It was awaiting the model inside a web request that dies at 26 seconds.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>StackBadger: the tool that outlived its sprint</title><link>https://doogit.com/posts/stackbadger-extraction/</link><guid isPermaLink="true">https://doogit.com/posts/stackbadger-extraction/</guid><description>I built a black-box security harness to attack my own product. The product sprint ended. The tool kept earning commits — so I generalized it and published it.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The register: eight products in 136 days</title><link>https://doogit.com/posts/the-register-itself/</link><guid isPermaLink="true">https://doogit.com/posts/the-register-itself/</guid><description>What shipped, what got shelved, what got killed — and why the kills are documented as carefully as the launches.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The REVOKE that didn&apos;t</title><link>https://doogit.com/posts/the-revoke-that-didnt/</link><guid isPermaLink="true">https://doogit.com/posts/the-revoke-that-didnt/</guid><description>I locked a sensitive database function, verified the lock, and a Supabase default grant to the anonymous role left it open to the internet for three days.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>