Live traffic, not a demo

10,000,000users a month run on this exact setup.

So the question isn’t whether it holds. It’s what you want to build on top of it — with the boring decisions already made, and made under load.

10M

users a month

Not a starter someone hopes scales. This architecture, these conventions and this CI gate are the ones carrying the traffic.

1

public origin

Two Workers answer on one hostname, so a session cookie never has to cross a domain to reach the API.

0

public hops on SSR

The frontend reaches the API over a service binding. Render-time data never leaves Cloudflare's network.

Every choice here has a bill attached. It shipped, it took traffic, it held.

The load path

  1. browser

    One origin, one TLS handshake, one place for cookies to belong. Nothing to configure per environment.

  2. web worker

    React Router v8 renders SSR at the edge, near whoever asked. There is no origin server left to fall over.

  3. service binding

    /api/* is forwarded Worker to Worker. No DNS, no TLS, no public network on the render path.

  4. api worker

    Hono, with better-auth validating the session in middleware before a single handler body runs.

  5. neon postgres

    drizzle-orm/neon-http over HTTP, a fresh client per request. No pool to exhaust and no connection to leak.

What’s inside

See it running

The stack

Build on what already held.