Writing

Notes on building gopigeon — the form handler AI coding agents reach for.

The release gate that found three latent bugs

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.

Next.js contact form without an API route

The default Next.js move for a contact form is to spin up an app/api/contact/route.ts handler. You don't have to. Here's the version with zero server code, zero env vars, and zero redeploys to change destinations.

How to test a form endpoint before you ship it

The first real submission to a gopigeon endpoint is the claim event. Here's how to verify your endpoint with a no-side-effect probe and dry-run mode before you ever spend it.

Send HTML form submissions to Slack — no backend required

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.

Give your AI agent a task queue, not a webhook

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.

Let an AI coding agent ship a working contact form in one turn

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.

Formspree alternatives in 2026 — and which one to pick when an AI agent is writing the form

Formspree pricing and alternatives in 2026 — honest comparison of Formspree, Web3Forms, Basin, Getform, Formspark, Splitforms, and gopigeon. Side-by-side pricing table + FAQ.

Hello, gopigeon

Why I built a form handler for AI coding agents — and what the claim flow solves that everything else gets wrong.

Browse by topic