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

# Membangun dan menerbitkan

> Membangun aplikasi dengan AI, melakukan iterasi pada pratinjau langsung, dan menerapkan ke produksi.

## Membuat aplikasi

Dua cara:

* **Tanya AI** - jelaskan apa yang Anda inginkan dalam thread dan AI akan membangunnya
* **Tombol aplikasi baru** - klik **+** di bilah sisi Drive dan pilih **Aplikasi baru**

AI memilih template awal berdasarkan apa yang Anda minta:

| Template  | Yang Anda dapatkan | Gunakan saat Anda membutuhkan                |
| --------- | ------------------ | -------------------------------------------- |
| `ui`      | Aplikasi web React | Aplikasi web, dasbor, halaman arahan         |
| `process` | Server HTTP        | API, penanganan webhook, pekerjaan terjadwal |

## Satu aplikasi, satu cabang

Setiap aplikasi adalah satu checkout git di `main`. Tidak ada draft terpisah, tidak ada pengalihan cabang, tidak ada langkah penggabungan. Setiap edit mendarat di `main` sebagai commit; penerbitan hanya "terapkan `main` saat ini".

## Siklus pembangunan

1. AI menulis kode langsung di `main`
2. AI memulai server dev. Anda melihat pratinjau langsung.
3. Anda melakukan iterasi melalui chat: "pindahkan bagan ke bilah sisi", "tambahkan tema gelap"
4. Server dev memuat ulang secara otomatis setelah setiap edit
5. Saat siap, terbitkan

## Penerbitan

Penerbitan menerapkan commit `main` saat ini. Tidak ada cabang produksi terpisah — commit yang paling baru diterbitkan di `main` adalah yang aktif.

Saat Anda menerbitkan ke katalog agar orang lain dapat memasang, aplikasi Anda menerima token identitas pengguna saat peluncuran, kunci pemasangan untuk backend-nya, dan webhook pemasangan/pembongkaran. Lihat [Penerbitan](/apps/publishing).

## Caching, pembaruan, dan offline

Desktop dan mobile hanya membuka URL aplikasi Anda dalam tampilan browser normal. Mereka **tidak** menghapus cache browser, memaksa pemuatan hanya jaringan, atau memilih kebijakan cache yang berbeda untuk aplikasi publik vs pribadi.

Aplikasi web Anda mengelola caching:

* Header HTTP `Cache-Control` untuk dokumen dan aset
* Pengaturan service worker / PWA opsional (template dilengkapi `vite-plugin-pwa` dengan pembaruan otomatis)
* Apakah build baru diaktifkan segera, dimuat ulang sekali, atau menunggu pembukaan berikutnya
* Fallback offline untuk build yang terakhir diaktifkan

Saat Kazzle melihat versi yang diterbitkan baru untuk tab aplikasi yang terbuka, ia meminta service worker terdaftar untuk memeriksa pembaruan (`registration.update()`). Aplikasi tanpa service worker mengabaikan pemeriksaan itu dan terus menggunakan header cache HTTP mereka sendiri.

Aplikasi yang diterbitkan dapat membuka secara instan dari cache, mengambil build baru tanpa refresh paksa, dan menjaga build terbaru tersedia offline.

## Penerapan

Setelah penerbitan, terapkan untuk mendapatkan URL langsung:

* **Aplikasi jarak jauh** diterapkan ke cloud Kazzle dan mendapatkan URL publik
* **Aplikasi lokal** dipasang di komputer Anda. UI dimuat langsung, dan bagian proses menjalankan server dev.

## Aplikasi realtime

Untuk aplikasi yang memerlukan pembacaan lokal instan dan dukungan offline, AI:

1. Membuat database
2. Mengaktifkan sinkronisasi realtime
3. Membangun aplikasi dua bagian: UI (React + klien sinkronisasi) dan Process (endpoint token + unggahan sinkronisasi)
4. Menghubungkan kredensial melalui [vault](/work/vault)

Lihat [Sinkronisasi realtime](/apps/sync) untuk cara kerjanya.

## Halaman arahan

Halaman arahan adalah aplikasi hanya UI. Tidak ada backend, tidak ada database. Jelaskan halaman dan AI akan membangunnya, menerapkannya, dan memberi Anda URL langsung. Untuk menggunakan domain kustom, arahkan domain atau subdomain Anda ke URL aplikasi yang diterapkan.
