Skip to content
Docs

Command palette

Jump to a page or view, or find a todo by name.

Changelog

Architecture

One Worker owns web rendering, API requests and scheduled execution.

Markdown

The production web app is a TanStack Start application built with the Cloudflare Vite plugin. Its Worker handles SSR, Better Auth, oRPC, the files gateway, MCP, AI streaming, OG images and cron. Expo calls the same HTTP API. There is no separate API deployment.

One Worker, shared application services Web and mobile call the Worker, which uses Hyperdrive and Postgres for records, R2 for objects and outbound providers for delivery. HTTPS RPC SQL SQL OBJECTS DELIVERY Web SSR + browser Expo mobile Authenticated client Cloudflare Worker SSR · API · cron Hyperdrive No query cache Postgres Neon R2 Private objects Providers Email · payments · AI Solid arrow: runtime request or delivery · One deployment owns the server boundary
Web and mobile call one Worker; the Worker uses Hyperdrive and Postgres for records, R2 for files, and outbound providers for delivery.

Runtime and infrastructure

ComponentResponsibility
TanStack StartRoutes, SSR, hydration and request handlers
Worker fetchCarries Cloudflare waitUntil into the request runtime before dispatch
HyperdrivePools connections to Postgres; query caching must stay disabled
Postgres, hosted on NeonUsers, Organizations, domain records, leases, outboxes and approvals
R2Private objects, accessed through the files-sdk fetch adapter
Worker scheduledRuns the six jobs in one scoped Effect program

The default build targets Cloudflare. DEPLOY_TARGET=node selects Nitro for a Node deployment. vite dev always uses Nitro, with a shim for cloudflare:workers and direct DATABASE_URL access. The Node path is useful locally; the built Worker remains the compatibility test for production.

Read the implementation

Shared code belongs in a package when web and mobile need the same contract or behavior. The package reference lists actual exports. Adding a feature usually extends the existing Worker, schema and router, rather than provisioning another service.

Key files

Edit on GitHubDocumentation is in English.