<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>gopigeon — Writing</title>
    <link>https://gopigeon.dev/blog</link>
    <atom:link href="https://gopigeon.dev/blog/rss.xml" rel="self" type="application/rss+xml" />
    <description>Notes on building gopigeon — the form handler AI coding agents reach for.</description>
    <language>en</language>
    <lastBuildDate>Fri, 22 May 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>The release gate that found three latent bugs</title>
      <link>https://gopigeon.dev/blog/2026-05-22-release-gate-three-bugs</link>
      <guid isPermaLink="true">https://gopigeon.dev/blog/2026-05-22-release-gate-three-bugs</guid>
      <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
      <description>We shipped @gopigeon/mcp v0.4.0 behind a one-curl release gate. It failed three times — and each failure exposed a latent backend bug worth fixing.</description>
    </item>
    <item>
      <title>Next.js contact form without an API route</title>
      <link>https://gopigeon.dev/blog/2026-05-21-nextjs-form-no-api-route</link>
      <guid isPermaLink="true">https://gopigeon.dev/blog/2026-05-21-nextjs-form-no-api-route</guid>
      <pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate>
      <description>The default Next.js move for a contact form is to spin up an app/api/contact/route.ts handler. You don&apos;t have to. Here&apos;s the version with zero server code, zero env vars, and zero redeploys to change destinations.</description>
    </item>
    <item>
      <title>How to test a form endpoint before you ship it</title>
      <link>https://gopigeon.dev/blog/2026-05-21-test-form-endpoint-before-shipping</link>
      <guid isPermaLink="true">https://gopigeon.dev/blog/2026-05-21-test-form-endpoint-before-shipping</guid>
      <pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate>
      <description>The first real submission to a gopigeon endpoint is the claim event. Here&apos;s how to verify your endpoint with a no-side-effect probe and dry-run mode before you ever spend it.</description>
    </item>
    <item>
      <title>Send HTML form submissions to Slack — no backend required</title>
      <link>https://gopigeon.dev/blog/2026-05-20-html-form-to-slack</link>
      <guid isPermaLink="true">https://gopigeon.dev/blog/2026-05-20-html-form-to-slack</guid>
      <pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
      <description>Wire an HTML contact form to a Slack channel in five lines and zero server code. Same pattern works for Discord and webhooks. No Zapier, no Lambda, no signup.</description>
    </item>
    <item>
      <title>Give your AI agent a task queue, not a webhook</title>
      <link>https://gopigeon.dev/blog/2026-05-19-agent-queue</link>
      <guid isPermaLink="true">https://gopigeon.dev/blog/2026-05-19-agent-queue</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <description>A task queue for AI agents — one anonymous curl creates a durable inbox. Idempotency keys, cursor-based pull, DLQ replay, and a 60-second drain on upgrade. No signup, no IAM role.</description>
    </item>
    <item>
      <title>Let an AI coding agent ship a working contact form in one turn</title>
      <link>https://gopigeon.dev/blog/2026-05-18-agent-one-turn</link>
      <guid isPermaLink="true">https://gopigeon.dev/blog/2026-05-18-agent-one-turn</guid>
      <pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
      <description>Claude Code or Cursor with the gopigeon MCP server can ship a working contact form in a single agent turn — no signup, no API key paste, just one tool call.</description>
    </item>
    <item>
      <title>Formspree alternatives in 2026 — and which one to pick when an AI agent is writing the form</title>
      <link>https://gopigeon.dev/blog/2026-05-17-formspree-alternatives</link>
      <guid isPermaLink="true">https://gopigeon.dev/blog/2026-05-17-formspree-alternatives</guid>
      <pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate>
      <description>Formspree pricing and alternatives in 2026 — honest comparison of Formspree, Web3Forms, Basin, Getform, Formspark, Splitforms, and gopigeon. Side-by-side pricing table + FAQ.</description>
    </item>
    <item>
      <title>Hello, gopigeon</title>
      <link>https://gopigeon.dev/blog/2026-04-20-hello-gopigeon</link>
      <guid isPermaLink="true">https://gopigeon.dev/blog/2026-04-20-hello-gopigeon</guid>
      <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
      <description>Why I built a form handler for AI coding agents — and what the claim flow solves that everything else gets wrong.</description>
    </item>
  </channel>
</rss>