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

# Construir e publicar

> Construindo apps com a IA, iterando em uma visualização ao vivo e implantando em produção.

## Criando um app

Duas formas:

* **Peça à IA** - descreva o que você quer em uma thread e a IA constrói
* **Botão Novo app** - clique em **+** na barra lateral Drive e escolha **Novo app**

A IA escolhe um template inicial baseado no que você pede:

| Template  | O que você recebe | Use quando precisar                    |
| --------- | ----------------- | -------------------------------------- |
| `ui`      | App web React     | Um app web, dashboard, landing page    |
| `process` | Servidor HTTP     | Uma API, webhook handler, job agendado |

## Um app, uma branch

Cada app é um único checkout git em `main`. Não há rascunhos separados, sem troca de branch, sem etapa de merge. Cada edição vai para `main` como um commit; publicar é apenas "implantar o `main` atual".

## O ciclo de construção

1. A IA escreve código diretamente em `main`
2. A IA inicia o servidor de desenvolvimento. Você vê uma visualização ao vivo.
3. Você itera por chat: "mova o gráfico para a barra lateral", "adicione um tema escuro"
4. O servidor de desenvolvimento recarrega automaticamente após cada edição
5. Quando pronto, publique

## Publicando

Publicar implanta o commit `main` atual. Não há uma branch de produção separada — o commit publicado mais recentemente em `main` é o que está ao vivo.

Quando você publica no catálogo para outros instalarem, seu app recebe um token de identidade do usuário no lançamento, uma chave de instalação para seu backend e webhooks de instalação/desinstalação. Veja [Publicando](/apps/publishing).

## Cache, atualizações e offline

Desktop e mobile apenas abrem a URL do seu app em uma visualização normal do navegador. Eles **não** limpam caches do navegador, forçam carregamentos apenas de rede ou escolhem uma política de cache diferente para apps públicos vs privados.

Seu app web controla o cache:

* Headers HTTP `Cache-Control` para documentos e assets
* Setup opcional de service worker / PWA (templates incluem `vite-plugin-pwa` com auto-atualização)
* Se uma nova build é ativada imediatamente, recarrega uma vez ou aguarda a próxima abertura
* Fallback offline para a build ativada mais recentemente

Quando Kazzle vê uma nova versão publicada para uma aba de app aberta, ele pede ao service worker registrado para verificar uma atualização (`registration.update()`). Apps sem um service worker ignoram essa verificação e continuam usando seus próprios headers de cache HTTP.

Apps publicados podem, portanto, abrir instantaneamente do cache, pegar uma nova build sem um hard refresh e manter a build mais recente disponível offline.

## Implantando

Após publicar, implante para obter uma URL ao vivo:

* **Apps remotos** implantam na nuvem Kazzle e recebem uma URL pública
* **Apps locais** instalam no seu computador. A UI carrega diretamente e a parte de processo executa um servidor de desenvolvimento.

## Apps em tempo real

Para apps que precisam de leituras locais instantâneas e suporte offline, a IA:

1. Cria um banco de dados
2. Ativa sincronização em tempo real
3. Constrói um app de duas partes: UI (React + cliente de sincronização) e Process (endpoint de token + upload de sincronização)
4. Conecta credenciais através do [vault](/work/vault)

Veja [Sincronização em tempo real](/apps/sync) para saber como funciona.

## Landing pages

Landing pages são apps apenas de UI. Sem backend, sem banco de dados. Descreva a página e a IA constrói, implanta e oferece uma URL ao vivo. Para usar um domínio personalizado, aponte seu domínio ou subdomínio para a URL do app implantado.
