> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kazzle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# App patterns

> Which Kazzle app shape to use for common jobs.

# App patterns

Pick the smallest app shape that matches the job. Add a process, database, sync, or AI API only when the app needs that capability.

| User wants                                  | Use                     | Notes                                                                                                                     |
| ------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Landing page, report, static page           | UI app                  | One UI component is enough.                                                                                               |
| Dashboard or internal tool with server data | UI + process            | Keep API routes and credentials in the process component.                                                                 |
| Persistent app data                         | UI + process + database | Reuse a suitable active database before creating one.                                                                     |
| Offline or instant multi-device data        | Realtime app            | Enable sync and verify `sync: ready` before wiring the app.                                                               |
| Scheduled job or webhook                    | Process app             | Use triggers on a process component.                                                                                      |
| AI-powered feature inside an app            | Process + Kazzle AI API | Use `/ai/*` with a `kzl_` API key.                                                                                        |
| Tool the assistant should call later        | Skill + process         | Add a skill folder (`SKILL.md` + `tools.ts`) and back each `target.type: 'app'` tool with a route on a process component. |

## Defaults

* Start from a template when one fits.
* Keep frontend code free of secrets and database URLs.
* Put server-only work in a process component.
* Use sibling component URLs instead of hardcoded localhost addresses.
* Verify previews in the app-dev tab before saying the app is running.
