# Developer documentation

Build, extend and operate the Cloudflare web template.

The template combines a server-rendered web app and shared domain packages. One Cloudflare Worker handles web rendering, authenticated APIs, files, agent tools and scheduled work. Postgres stores application state; R2 stores private objects.

<Cards>
  <Card title="Start locally" href="/docs/development/setup">
    Configure identity, environment and a development database.
  </Card>
  <Card title="Understand the architecture" href="/docs/architecture">
    Follow a request and learn the server boundary.
  </Card>
  <Card title="Extend a feature" href="/docs/features">
    Find ownership, key files and failure cases.
  </Card>
  <Card title="Read the changelog" href="/docs/changelog">
    See what landed and why it matters.
  </Card>
</Cards>

## Quickstart [#quickstart]

```sh
git clone https://github.com/CarlosZiegler/template-cloudflare.git
cd template-cloudflare
pnpm install
pnpm setup
pnpm dev
```

Setup configures project identity and local environments, and guides database and provider configuration. The web defaults to `http://localhost:3005`. See [local setup](/docs/development/setup) before connecting a shared database. Apply reviewed migrations; never push the schema.

## Stack at a glance [#stack-at-a-glance]

| Layer             | Choice                                                                       |
| ----------------- | ---------------------------------------------------------------------------- |
| Web               | TanStack Start 1.0, React, Vite, Tailwind CSS and shadcn/Base UI             |
| API and contracts | oRPC, Zod and TanStack Query                                                 |
| Identity          | Better Auth with Organizations, passkeys and two-factor                      |
| Data              | Drizzle, Postgres/Neon and Cloudflare Hyperdrive                             |
| Background work   | Stable Effect APIs and durable Drizzle leases                                |
| Agents            | Shared tool catalog, TanStack AI and MCP OAuth                               |
| Documentation     | Headless Fumadocs MDX/core, static highlighting and server-rendered articles |

The [library reference](/docs/libraries) records pinned versions and upgrade policy.

## What is included [#what-is-included]

Authentication and account security, Organization-scoped Todos and files, saved views, JSON imports, admin management, audit and activity records, feature flags, three-language app chrome, transactional email, provider-gated payments, AI approvals, MCP tools, OG images and agent-readable pages. Installed code does not imply configured providers.

## Repository map [#repository-map]

<FileTree>{`apps/web/          Web routes, hooks, content and Worker entry
packages/          Shared domain and platform packages
docs/              ADRs, operations guides and measurements
scripts/           Verification, migrations and deployment helpers
.agents/skills/    Project workflows for contributors`}</FileTree>

Docs articles are written in English. Navigation controls follow the app language (English, German or French). Architectural decisions are [rendered from their original files](/docs/adr), so there is one source of truth.

