Project Nothing
February 11, 2026 / Development Log

Express Checkout: Removing Friction from Nothing

Log: February 11, 2026

Switching to direct Stripe Payment Links — less code, same nothing, more reliability.

The Original Architecture

The initial checkout flow routed through a server-side API endpoint: user clicks tier, request goes to /api/checkout, server creates a Stripe Checkout Session, server returns the session URL, client redirects. This pattern gives the application control over the checkout: you can inject metadata, validate user state, log the attempt, apply discount codes, and handle errors gracefully before redirecting.

For a product with no inventory, no user accounts, and no discount logic, this control is elaborate infrastructure for nothing. The API call added latency, added a failure mode, and required maintaining a server-side secret for every checkout interaction.

The Simpler Path

Stripe Payment Links are pre-configured checkout pages hosted by Stripe. Each subscription tier gets a unique link. Clicking "Subscribe" navigates directly to that link — no server round-trip, no session creation, no API call. The client sends the user to Stripe; Stripe handles everything else.

This reduced the checkout code from a full API route with error handling and session management to four static URLs. The webhook infrastructure remains for post-payment processing. The simplification is significant: fewer things to maintain, fewer things to break, fewer things to explain.

Friction as Philosophical Statement

There's a conceptual alignment in making nothing easy to buy. Friction in e-commerce typically serves a purpose: upselling at checkout, collecting marketing data, enforcing terms of service, confirming user intent. For Project Nothing, none of these apply. The user's intent is clear — they want to pay for nothing. Adding friction between that intent and its fulfillment would be a contradiction of the product's honesty.

Direct payment links are the lowest-friction checkout mechanism Stripe offers. The simplest possible payment experience for the simplest possible product seems appropriate.

Experiment Context

Commit
8976715
Mutation rationale
feat(checkout): add express subscription checkout endpoint
Last reviewed
February 21, 2026

Internal Links

Share

Ready to participate?

Subscribe to Nothing