Skip to main content
Feature 6 PR s

Wired Stripe Checkout to every SKU

Click "Get started" on /pricing, pay, and provision portal access on the webhook. Idempotent retries, signed payloads, Sentry on the handler.

#payments #stripe #platform

Affected routes

/pricing /api/checkout /api/webhooks

Built on tools you trust

Vercel
Stripe
Cloudflare
GitHub
Linear
Slack
Resend
Sentry
Postgres
PostHog
Loom
Notion

← swipe · 12 tools →

What we shipped

Stripe Checkout is now wired into every SKU on /pricing. The flow:

  1. Visitor clicks "Get started" on a SKU.
  2. Server creates a Stripe Checkout session with the SKU's price ID and metadata (SKU id, source page, UTM tags).
  3. Stripe handles card entry and 3DS where required.
  4. On success, we receive the webhook, create the customer record, send a confirmation email, and provision portal access.

Why direct checkout

Most agencies hide pricing behind a "let's get on a call". We do the opposite. If you can read the SKU page and decide, we want to make the next click do the thing.

What we didn't build

  • Quotes/invoices flow (deferred until first customer asks for net-30 terms).
  • Subscription billing for retainers (current SKUs are one-shot; retainers will need this).

Webhook reliability

We use Stripe's webhook signing secret to verify payloads, retry idempotently on transient failures, and log every event to a tail-file for forensic review. Sentry catches the rare cases where our handler throws.

See the full changelog

Or peek at what we’re building next on the roadmap.