# Developer documentation

Build, extend and operate the Cloudflare web and Expo mobile template.

The template combines a server-rendered web app, an Expo mobile 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/wundklare.git
cd wundklare
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`; Expo starts separately through the workspace dev task. 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             |
| Native            | Expo, Expo Router and React Native                                           |
| 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. Native purchases, widgets and ads have explicit activation paths; installed code does not imply configured providers.

## How these docs are organized [#how-these-docs-are-organized]

The pages are arranged by altitude, from the map down to templates. Read only as far down as you need.

| Altitude    | Question                         | Where                                                                                                                                  |
| ----------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Map         | Where do I look?                 | This page                                                                                                                              |
| Principles  | Why is it shaped this way?       | [Architecture](/docs/architecture)                                                                                                     |
| Conventions | What is the exact rule?          | [Backend conventions](/docs/development/backend-conventions), [Conventions](/docs/development/conventions), [Features](/docs/features) |
| Reference   | What exists, and what checks it? | [Packages](/docs/packages), [Review checklist](/docs/development/review-checklist), [Enforcement](/docs/development/enforcement)       |
| Templates   | Give me the files.               | The `domain-feature` skill in `.agents/skills/`                                                                                        |
| Process     | How do these evolve?             | [Decisions](/docs/adr), [Changelog](/docs/changelog), [Runbooks](/docs/development/runbooks)                                           |

## Repository map [#repository-map]

<FileTree>{`apps/web/          Web routes, hooks, content and Worker entry
apps/mobile/       Expo screens, hooks and native registration
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.

