> ## 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.

# 构建和发布

> 使用 AI 构建应用、在实时预览中迭代，以及部署到生产环境。

## 创建应用

两种方式：

* **询问 AI** - 在对话中描述你的需求，AI 会为你构建
* **新应用按钮** - 点击 Drive 侧边栏中的 **+**，选择 **新应用**

AI 会根据你的描述选择合适的起始模板：

| 模板        | 你会得到       | 适用场景                 |
| --------- | ---------- | -------------------- |
| `ui`      | React 网页应用 | 网页应用、仪表板、落地页         |
| `process` | HTTP 服务器   | API、Webhook 处理器、定时任务 |

## 一个应用，一个分支

每个应用都是 `main` 上的单个 git 检出。没有单独的草稿、没有分支切换、没有合并步骤。每次编辑都作为一个提交落在 `main` 上；发布就是"部署当前的 `main`"。

## 构建周期

1. AI 直接在 `main` 上编写代码
2. AI 启动开发服务器。你看到实时预览。
3. 通过对话迭代："把图表移到侧边栏"、"添加深色主题"
4. 每次编辑后开发服务器热重载
5. 准备好后，发布

## 发布

发布会部署当前 `main` 上的提交。没有单独的生产分支 — 最近发布的 `main` 上的提交就是线上版本。

当你发布到目录供他人安装时，你的应用在启动时会收到用户身份令牌、后端的安装密钥，以及安装/卸载 Webhook。参见 [发布](/apps/publishing)。

## 缓存、更新和离线

桌面和移动设备只在普通浏览器视图中打开你的应用 URL。它们**不会**清除浏览器缓存、强制仅网络加载，或为公开应用和私有应用选择不同的缓存策略。

你的网页应用掌控缓存：

* 文档和资源的 HTTP `Cache-Control` 头
* 可选的 Service Worker / PWA 设置（模板附带 `vite-plugin-pwa` 和自动更新）
* 新构建是立即激活、重载一次，还是等待下次打开
* 最新激活构建的离线回退

当 Kazzle 检测到打开的应用标签页有新发布版本时，它会要求已注册的 Service Worker 检查更新（`registration.update()`）。没有 Service Worker 的应用会忽略该检查，继续使用自己的 HTTP 缓存头。

因此，已发布的应用可以从缓存中立即打开、无需硬刷新就能获取新构建，并保持最新构建离线可用。

## 部署

发布后，部署以获得实时 URL：

* **远程应用**部署到 Kazzle 云端并获得公开 URL
* **本地应用**安装在你的计算机上。UI 直接加载，Process 部分运行开发服务器。

## 实时应用

对于需要即时本地读取和离线支持的应用，AI 会：

1. 创建数据库
2. 启用实时同步
3. 构建双部分应用：UI（React + 同步客户端）和 Process（令牌端点 + 同步上传）
4. 通过 [Vault](/work/vault) 连接凭证

参见 [实时同步](/apps/sync) 了解工作原理。

## 落地页

落地页是仅 UI 的应用。没有后端，没有数据库。描述页面，AI 会构建它、部署它，并给你一个实时 URL。要使用自定义域名，将你的域名或子域名指向已部署的应用 URL。
