> ## 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 dev सर्वर शुरू करता है। आप एक लाइव प्रीव्यू देखते हैं।
3. आप चैट से पुनरावृत्ति करते हैं: "चार्ट को साइडबार में ले जाएं", "एक डार्क थीम जोड़ें"
4. dev सर्वर हर संपादन के बाद hot-reload करता है
5. जब तैयार हों, प्रकाशित करें

## प्रकाशन

प्रकाशन वर्तमान `main` कमिट को तैनात करता है। कोई अलग प्रोडक्शन ब्रांच नहीं है — `main` पर सबसे हाल ही में प्रकाशित कमिट वह है जो लाइव है।

जब आप कैटलॉग में प्रकाशित करते हैं ताकि दूसरे इसे इंस्टॉल कर सकें, तो आपका ऐप लॉन्च पर एक यूजर आइडेंटिटी टोकन, अपने बैकएंड के लिए एक इंस्टॉल कुंजी, और इंस्टॉल/अनइंस्टॉल वेबहुक प्राप्त करता है। [प्रकाशन](/apps/publishing) देखें।

## कैशिंग, अपडेट, और ऑफलाइन

डेस्कटॉप और मोबाइल केवल आपके ऐप URL को एक सामान्य ब्राउज़र व्यू में खोलते हैं। वे ब्राउज़र कैश को साफ **नहीं** करते, नेटवर्क-केवल लोड को बाध्य **नहीं** करते, या सार्वजनिक बनाम निजी ऐप्स के लिए एक अलग कैश नीति चुनते **नहीं** हैं।

आपका वेब ऐप कैशिंग को नियंत्रित करता है:

* दस्तावेज़ों और संपत्तियों के लिए HTTP `Cache-Control` हेडर
* वैकल्पिक service worker / PWA सेटअप (टेम्पलेट `vite-plugin-pwa` के साथ auto-update के साथ आते हैं)
* क्या एक नया बिल्ड तुरंत सक्रिय होता है, एक बार रीलोड होता है, या अगले ओपन का इंतज़ार करता है
* नवीनतम सक्रिय बिल्ड के लिए ऑफलाइन फॉलबैक

जब Kazzle एक खुले ऐप टैब के लिए एक नया प्रकाशित संस्करण देखता है, तो यह पंजीकृत service worker से एक अपडेट की जांच करने के लिए कहता है (`registration.update()`)। Service worker के बिना ऐप्स उस जांच को अनदेखा करते हैं और अपने स्वयं के HTTP कैश हेडर का उपयोग करते रहते हैं।

प्रकाशित ऐप्स इसलिए कैश से तुरंत खुल सकते हैं, एक कठोर रीफ्रेश के बिना एक नया बिल्ड उठा सकते हैं, और नवीनतम बिल्ड को ऑफलाइन उपलब्ध रख सकते हैं।

## तैनाती

प्रकाशन के बाद, एक लाइव URL प्राप्त करने के लिए तैनात करें:

* **रिमोट ऐप्स** Kazzle के क्लाउड में तैनात होते हैं और एक सार्वजनिक URL प्राप्त करते हैं
* **स्थानीय ऐप्स** आपके कंप्यूटर पर इंस्टॉल होते हैं। UI सीधे लोड होता है, और प्रक्रिया भाग एक dev सर्वर चलाता है।

## रीयलटाइम ऐप्स

ऐप्स के लिए जिन्हें तत्काल स्थानीय पढ़ने और ऑफलाइन समर्थन की आवश्यकता है, AI:

1. एक डेटाबेस बनाता है
2. रीयलटाइम सिंक को चालू करता है
3. एक दो-भाग ऐप बनाता है: UI (React + sync क्लाइंट) और Process (टोकन एंडपॉइंट + sync अपलोड)
4. [vault](/work/vault) के माध्यम से क्रेडेंशियल्स को वाय
