osFoundry Custom App से छोटे internal apps कैसे बनाएं और host करें
गुरुवार है, release में दो घंटे बचे हैं, और Dari अकेला इंसान है जिसे पता है कि cutover के कौन-से steps हो चुके हैं। Checklist एक spreadsheet tab में है, runbook एक shared drive में, और बातचीत एक ऐसे chat thread में जिसे कोई ढूंढ नहीं पा रहा। Team को असल में चाहिए एक छोटा-सा app, जिसमें चार checkbox और दो owners हों, और जो files के ठीक बगल में रहे। उसे लिखना आसान है। उसे host करना, उसे database देना, उसकी keys सुरक्षित रखना और उसे एक URL दिलाना, यही वो हिस्सा है जहां आमतौर पर काम अटक जाता है। Custom App category क्या है osFoundry अपने छोटे apps बनाने और चलाने की सारी चीज़ें desktop app के sidebar में एक ही category में रखता है, जिसका नाम CUSTOM APP है। इसमें पांच screens हैं। Room वो shared जगह है जहां apps tabs के रूप में रहते हैं। App Code किसी app के पीछे की repository है। Deployed Apps पूरे workspace में जो कुछ live है उसकी list है। Snippets में वो छोटे apps जमा होते हैं जिन्हें कभी repository की ज़रूरत ही नहीं पड़ी। Domains उन web addresses को manage करता है जिनसे ये apps serve होते हैं। अगर आप Notion जानते हैं, तो एक ऐसे page की कल्पना कीजिए जिसके tabs documents की जगह चलते हुए apps हैं, और नीचे Vercel जैसी एक छोटी hosting layer है: हर app को अपना database, secrets, scheduled jobs और एक subdomain मिलता है, जैसा कि internal apps feature page पर बताया गया है। Build screen पर एक नज़र कोई app कैसे शुरू होता है, यह देखने का सबसे तेज़ तरीका desktop app का build view है। यह capture Websites builder (example project "Hearth Bakery") से है, जो वही describe-then-build loop इस्तेमाल करता है जो एक Room अपने "Describe the app you want" box के ज़रिए देता है। Pages, बाईं ओर: app के वो हिस्से जो पहले से मौजूद हैं, नीचे Add page के साथ। Preview, बीच में: जो आप बना रहे हैं, ऊपर desktop, tablet और phone sizes के साथ। "On this computer" label बताता है कि अभी कुछ भी publish नहीं हुआ है। Describe box: आप लिखते हैं कि app क्या करता है, किसके लिए है और कैसा feel होना चाहिए, फिर Build my site दबाते हैं। Maestro, यानी app का AI assistant, files लिखता है। Maestro panel, दाईं ओर: वो बातचीत जो app बनाती और बदलती है। Use a folder उसे अंदाज़ा लगाने देने की बजाय आपके अपने material की ओर ले जाता है। Publish needs credits, ऊपर: build और preview आपके computer पर होते हैं; hosting वो step है जिसमें workspace credits लगते हैं। Room के अंदर भी idea यही है, बस arrangement अलग है: ऊपर apps की tab strip, बीच में चुना हुआ app, और दाईं ओर एक panel जिसमें दो tabs हैं, Maestro और Details। Use case 1: release team अपनी checklist वहीं रखती है जहां काम होता है कौन: एक release manager और तीन teammates जो launch की तैयारी कर रहे हैं। स्थिति: cutover steps, runbook और release tracker तीन अलग tools में बिखरे हैं, और release के दिन कोई भी spreadsheet पर भरोसा नहीं करता। वे osFoundry में क्या करते हैं: New Room से "Launch Ops" नाम का room बनाते हैं, और release tracker और launch files को tabs के रूप में जोड़ते हैं। Tab strip पर + button दबाते हैं। New Tab picker installed apps और एक catalogue (Incident log, Retro board, On-call rota, Changelog builder) दिखाता है, जिसे All, Forked या Snippets से filter किया जा सकता है। "Describe the app you want" में Build a snippet पर click करते हैं और हर item के लिए एक owner वाली cutover checklist मांगते हैं। Snippet कुछ files से बना एक runnable mini-app है। इसकी न repository होती है, न version, न deploy, और यह वहीं tab में चलता है। Checklist खुली रहते हुए दाएं panel में Maestro से बात करते रहते हैं, और Details tab से देखते हैं कि room किस बारे में है और उसमें क्या-क्या हुआ है। नतीजा: एक room जिसमें checklist (demo में: Freeze the 2.4 branch, Run the order-index migration, Smoke-test the order desk, Post the release note) runbook और tracker के बगल में रहती है। बाद में Snippets screen सभी rooms के सारे snippets दिखाती है। वहां से कोई भी किसी snippet को Export करके JSON के रूप में दूसरे workspace में ले जा सकता है, या tab से बड़ा हो जाने पर उसे Promote करके असली repository बना सकता है। Use case 2: एक developer internal tool को असली backend देता है कौन: एक solo developer जो support team के लिए sign-up और orders tool बना रहा है। स्थिति: पहला version एक laptop पर SQLite file के साथ चलता था। अब तीन teams को इसकी ज़रूरत है, इसे एक payment API call करनी है, और रात का clean-up बिना किसी के button दबाना याद रखे चलना चाहिए। वह osFoundry में क्या करता है: जब तक app अभी local चल रहा है, project को IDE में खोलता है और Database tab पर click करता है। यह app की .db और .sqlite files ढूंढता है और table को read-only खोलता है, हर page पर 200 rows (ऊपर example data), ताकि कुछ भी move करने से पहले आप देख सकें कि app ने असल में क्या save किया है। App को एक shared room में move करता है। Move to cloud dialog app को एक Cloud room में copy करता है ताकि उसमें मौजूद हर कोई उसे इस्तेमाल कर सके, और बताता है कि कौन-सी tables copy हुईं और कौन-सी device पर ही रहीं। App और उसका data इस device पर भी बने रहते हैं। App की tab settings खोलता है। Secrets के नीचे App Runtime Secrets उन keys की list दिखाता है जो app declare करता है; Add a custom secret नई key store करता है, और Rotate एक value बदल देता है। इसके बाद app "Secrets updated. Redeploy to apply changes." दिखाता है। App manifest में container.cron के नीचे clean-up declare करता है, फिर Scheduled jobs खोलकर Sync from manifest पर click करता है। हर job को pause, resume या Run now से एक बार start किया जा सकता है। नतीजा: अपने Postgres database वाला app। osFoundry पर हर Room App को एक मिलता है, जिसमें pgvector और TimescaleDB installed होते हैं, और connection string runtime पर secret के रूप में आती है (per-app Postgres)। Database browser में filters वाला row editor और सिर्फ़ SELECT वाला SQL view है, और Database snapshots में New snapshot, Restore और एक download link मिलता है। Code changes App Code में होते हैं, जहां developer main को छुए बिना version/2.4 जैसे किसी version पर काम कर सकता है, Manifest (entry point, visibility, required connectors) check कर सकता है और release से पहले Versions tree देख सकता है। Use case 3: एक दुकान की मालकिन page publish करती है और उस पर नज़र रखती है कौन: कोई जो एक छोटी bakery चलाती है और code नहीं लिखती। स्थिति: उसे अपने address पर menu और खुलने के समय वाली एक simple site चाहिए, और वह जानना चाहती है कि उसे online रखने में कितना खर्च आएगा। वह osFoundry में क्या करती है: Websites खोलती है, New Website दबाती है, bakery के बारे में लिखती है और Build my site दबाती है। पहला version (ऊपर, example) placeholder शब्दों का इस्तेमाल करता है, और Maestro यह साफ़-साफ़ बता देता है। Use a folder दबाकर असली menu और photos वाला folder चुनती है, फिर सीधे शब्दों में बदलाव मांगती है, जैसे "Make the headline bigger." जब सब ठीक लगे, publish करती है। Hosting में workspace credits लगते हैं। Who can open it में Workspace members only, Anyone with the link, या app का अपना sign-in मिलता है; public bakery site के लिए Anyone with the link इस्तेमाल होता है। Domains में कोई domain register करती है या पहले से अपना domain जोड़ती है, फिर उसके DNS records edit करती है। Events दिखाता है कि किसने कौन-सा record बदला, और Settings में renewal, privacy और transfer code होते हैं। नतीजा: उसके अपने शब्दों और photos वाली site, जो उसके अपने domain पर serve होती है। इसके बाद Deployed Apps वो सवाल हल करता है जो एक मालिक सच में पूछता है। Apps हर app और वह कहां serve हो रहा है दिखाता है, Activity बताता है कि क्या बदला, Usage हर app का build और storage cost दिखाता है, और Previews अभी चल रहे preview versions की list देता है। यह osFoundry के बाकी हिस्सों से कैसे जुड़ता है Custom App शायद ही कभी अकेले काम करता है। Maestro हर Room के दाएं panel और build views में assistant है; वह आपके साथ code लिखता और edit करता है। IDE आपको Database tab, source control और उन apps के लिए editor देता है जो आपके computer पर एक folder के रूप में शुरू होते हैं। जब "app" असल में एक public site हो, तो Websites ज़्यादा तेज़ रास्ता है। Snippets, App Code से सिर्फ़ Promote के ज़रिए जुड़ते हैं, इसलिए एक throwaway tool बिना दोबारा लिखे maintained repository बन सकता है। App के अंदर scheduled काम app cron jobs संभालते हैं, जिनके बारे में app cron platform page पर बताया गया है। नए users के आम सवाल क्या Room एक chat room है? नहीं। Room का मुख्य हिस्सा उसके app tabs हैं। Maestro chat दाईं ओर companion panel में, room के Details के बगल में रहता है। App की बजाय snippet कब बनाना चाहिए? जब tool कुछ ही files का हो और उसे सिर्फ़ एक room के अंदर चलना हो, जैसे date formatter या webhook check। Snippet save करने से न कुछ install होता है, न कुछ deploy होता है। अगर बाद में उसे versions, secrets या database चाहिए, तो उसे Promote करके repository बना दीजिए। क्या दो apps एक database share कर सकते हैं? हर app का अपना Postgres होता है। Sharing explicit grants के ज़रिए होती है: room का Database tab Incoming Requests, Active Grants और Outgoing Access दिखाता है, और हर request को approve या deny किया जा सकता है। क्या इसे try करने में कुछ खर्च होता है? आपके computer पर build और preview करने के लिए credits नहीं चाहिए। Publish, deploy और domains register करने में workspace credits लगते हैं। Desktop app आप osfoundry.io/hi/download से download कर सकते हैं।
This is a summary aggregated from Dev.to. Read the complete article on the original site:
Read full article at Dev.to