# Development Guide

> Patterns for building features in the current TanStack Start Drizzle kit.

*Canonical: https://makerkit.dev/docs/tanstack-drizzle/development-guide/overview*

---

Use the development guide as a reference for the repo's normal flow:

1. define schema and validation
2. update database code if needed
3. add server functions or loaders
4. build UI components
5. wire the route

## Canonical Locations

- authenticated routes: `apps/web/src/routes/_authenticated/...`
- public routes: `apps/web/src/routes/_public/...`
- auth routes: `apps/web/src/routes/auth/...`
- route-local server functions and loaders: `apps/web/src/lib/...`
- shared UI components: `apps/web/src/components/...` (kebab-case)
- shared packages: `packages/**`

Routes are file-based: a pathless group like `_authenticated` is a layout route
(`apps/web/src/routes/_authenticated/route.tsx`) that wraps every nested route.
There is no dedicated `packages/features/` folder in this repo. If code becomes
broadly shared, create a normal workspace package under `packages/` or one of the
grouped package families (e.g. `packages/organization/`).

## Topics

1. [Development Workflow](./development-workflow)
2. [Adding Features](./adding-features)
3. [Server Functions](./server-functions)
4. [Function Middleware](./function-middleware)
5. [Working with Forms](./working-with-forms)
6. [Database Operations](./database-operations)

---

**Next:** [Development Workflow →](./development-workflow)
