learn

Deployment overview

What runs where, and what is free versus paid.

The system splits across four hosts. The browser loads the web app from Vercel, then talks to an HTTP service and a WebSocket service on Render, which read and write Neon Postgres and Upstash Redis. A Render flush worker moves room snapshots from Redis into Postgres.

ServiceHostCost
Web appVercelFree
HTTP serviceRender web serviceFree, sleeps when idle
WebSocket serviceRender web serviceFree, sleeps when idle
Flush workerRenderPaid (needs to run continuously)
PostgresNeonFree tier
RedisUpstashFree tier

Free means limited: Render sleeps idle web services and rations instance hours, Neon and Upstash cap their free tiers. Nothing here is production-grade, and every limit below can change — re-check the linked docs before you rely on a number.

Last verified: 2026-10-11.

Provider docs

What it owns

  • The free-tier hosting split across four providers
  • Which service is paid and which services sleep
Hosting map
BrowserAPIRealtimeCacheDatabaseShareddurableephemeral

Talks to

Sources: README.md, apps/web/package.json, apps/http-server/package.json, apps/ws-server/package.json, apps/flush-worker/package.json (documented at commit b0026d9)

On this page