00:00:00ठीक है, तो आपने कितनी बार बिल्कुल वैसा ही बैकएंड फिर से बनाया है?
00:00:04CRUD, ऑथ (auth), एडमिन पैनल, फ़ाइल अपलोड।
00:00:07अक्सर, जिसे हम बनाना समझते हैं, वह असल में बस फिर से बनाना ही होता है।
00:00:10क्या हो अगर आप अपने मौजूदा SQL डेटाबेस पर एक टूल का इस्तेमाल करें और आपको पूरा बैकएंड मिल जाए?
00:00:15वह है Directus, SQL डेटाबेस कंटेंट को मैनेज करने के लिए एक रियल-टाइम API और ऐप डैशबोर्ड।
00:00:21बहुत से डेवलपर्स अब महसूस कर रहे हैं कि वे इतने समय से इसे कठिन तरीके से कर रहे थे।
00:00:25चलिए मैं आपको दिखाता हूँ कि यह सब कुछ ही मिनटों में कैसे काम करता है।
00:00:30[संगीत]
00:00:33हम में से अधिकांश के लिए बैकएंड की सबसे बड़ी समस्या जटिलता नहीं, बल्कि दोहराव है।
00:00:38हम नई समस्याओं को हल नहीं कर रहे हैं, हम बार-बार वही कोड लिख रहे हैं,
00:00:42और यह वाकई में हमारे समय की बर्बादी है।
00:00:44Directus उस सब को खत्म कर देता है।
00:00:46यह सीधे आपके Postgres, MySQL, या Oracle डेटाबेस से जुड़ जाता है।
00:00:50कोई माइग्रेशन नहीं, कहीं और अपना पूरा स्कीमा फिर से बनाने की ज़रूरत नहीं।
00:00:53हमें तुरंत REST और GraphQL APIs मिल जाते हैं,
00:00:57फील्ड-लेवल अनुमतियाँ (permissions), रियल-टाइम सब्सक्रिप्शन,
00:01:01फ्लो और ऑटोमेशन, फ़ाइल हैंडलिंग, और एक साफ-सुथरा एडमिन UI।
00:01:05अब, यहाँ दिलचस्प बात यह है कि आपका डेटाबेस वैसा ही रहता है।
00:01:08यह कोई डुप्लीकेट लेयर नहीं है।
00:01:10यह बात सुनने से कहीं ज़्यादा मायने रखती है।
00:01:12अब मैं आपको दिखाता हूँ।
00:01:13अगर आप अपने वर्कफ़्लो को तेज़ करने के लिए ओपन-सोर्स टूल और कोडिंग टिप्स का आनंद लेते हैं,
00:01:17तो सब्सक्राइब ज़रूर करें।
00:01:18हमारे पास हर समय वीडियो आते रहते हैं।
00:01:20ठीक है, अब बिल्कुल शून्य से एक फ्रेश Directus इंस्टॉल के साथ शुरू करते हैं,
00:01:24कोई डेटाबेस टेबल नहीं, कुछ भी पहले से लोडेड नहीं।
00:01:27यहाँ अकाउंट बनाने के बाद यह बस एक पूरी तरह से खाली कैनवस है।
00:01:32और पहले से मौजूद किसी चीज़ से जुड़ने के बजाय,
00:01:34मैं बस एक मिनट या उससे कम समय में एक पूरा ऑर्डर मैनेजमेंट ऐप बनाऊँगा।
00:01:39सबसे पहले, मैं एक कलेक्शन बनाता हूँ और उसे 'Orders' नाम दूँगा, बिल्कुल ऐसे।
00:01:45बस इतना ही।
00:01:45अब ऐप के पास डेटा स्टोर करने की जगह है, और अब हम इसमें और विवरण जोड़ सकते हैं।
00:01:51मैं उन चीजों को चुनने और ओवरराइड करने जा रहा हूँ जिनकी हमें ज़रूरत है,
00:01:54जैसे कस्टमर, तारीख, और ऐसी ही सारी चीज़ें।
00:01:58फिर मैं मैन्युअली कोई भी अन्य फ़ील्ड जोड़ सकता हूँ
00:02:00जिसकी हमें लगता है कि इस तरह की चीज़ के लिए ज़रूरत होगी।
00:02:03तो मैं कस्टमर का नाम, ईमेल, प्रोडक्ट को ड्रॉपडाउन के रूप में रख सकता हूँ,
00:02:08जहाँ मैं एक की (key) और एक वैल्यू जोड़ सकता हूँ।
00:02:10मैं राशि और स्टेटस के लिए भी ऐसा कर सकता हूँ।
00:02:13प्रत्येक फ़ील्ड उस डेटा के बारे में अधिक विवरण जोड़ता है जिसे हम स्टोर करने जा रहे हैं।
00:02:16और गौर करें कि यहाँ क्या गायब है।
00:02:18जी हाँ, वह है SQL।
00:02:19कोई SQL नहीं है।
00:02:20कोई माइग्रेशन नहीं है।
00:02:22स्कीमा फ़ाइल लिखने के लिए बार-बार टैब बदलने की ज़रूरत नहीं है।
00:02:25यह तुरंत Directus में यहीं सेव हो जाता है।
00:02:28अब मैं सीधे कंटेंट व्यू में जाकर ऑर्डर जोड़ना शुरू कर सकता हूँ।
00:02:32तो मैं यहाँ पहला ऑर्डर जोड़ सकता हूँ, बस एक डमी अकाउंट।
00:02:35मैं एक और जोड़ूँगा।
00:02:36और फिर हम तीसरा भी जोड़ सकते हैं, है न?
00:02:39सिस्टम में हमारे पास यहाँ तीन अलग-अलग ऑर्डर हैं।
00:02:42अब मेरे पास यहाँ कुछ वास्तविक डेटा है जिसके साथ हम काम शुरू कर सकते हैं।
00:02:45लेकिन अभी यह सबके लिए खुला है, जिसका मतलब है कि कोई भी कुछ भी कर सकता है।
00:02:49तो चलिए इसे ठीक करते हैं।
00:02:50हम इसे कैसे ठीक करेंगे?
00:02:51परमिशन (Permissions) के साथ।
00:02:53तो मैं 'public role' पर जाता हूँ।
00:02:55मैं उस कलेक्शन को ढूंढूँगा जिसे हमने बनाया था, 'orders'।
00:02:58हम रीड (read) को ऑन कर सकते हैं।
00:03:00और मैं यह सुनिश्चित करने जा रहा हूँ कि यहाँ बाकी सब कुछ बंद है।
00:03:03जैसे क्रिएट, अपडेट, डिलीट।
00:03:05वे सब हटा दिए गए हैं।
00:03:06अब यह हमारी ज़रूरत के हिसाब से ज़्यादा नियंत्रित और सुरक्षित है।
00:03:10ठीक है, अब यहाँ से चीज़ें वाकई दिलचस्प होने लगती हैं
00:03:12क्योंकि हम कुछ ऑटोमेशन कर सकते हैं और इसके इर्द-गिर्द फ्लो बना सकते हैं।
00:03:16मैं यहाँ जाने वाला हूँ और एक नया फ्लो बनाने वाला हूँ।
00:03:19मैं इसे बस एक बहुत ही सरल नाम दूँगा, यह क्या है?
00:03:22तो मैं 'नए ऑर्डर पर सूचित करें' (notify on a new order) रखूँगा।
00:03:24सरल नाम, मेरा काम हो गया।
00:03:26और मैं 'orders' नाम के कलेक्शन में मौजूद सभी आइटम्स को चुनूँगा।
00:03:31अब मैं एक ट्रिगर बना सकता हूँ।
00:03:33और ट्रिगर के लिए, मैं तब सक्रिय होने के लिए सेट करूँगा जब कोई नया आइटम बनाया जाए,
00:03:37खासकर उस 'orders' कलेक्शन में।
00:03:39तो अब हर बार जब कोई नया ऑर्डर आएगा, तो कुछ न कुछ होगा।
00:03:43मैं एक ऑपरेशन जोड़ने जा रहा हूँ।
00:03:44हम एक ईमेल भेजेंगे।
00:03:46यह एक विषय (subject) लिखेगा।
00:03:47मैं इसमें अपना ईमेल जोड़ूँगा।
00:03:49और फिर बॉडी में, मैं ऑर्डर का डेटा खींचूँगा।
00:03:52तो जब भी कोई नया ऑर्डर आएगा, वह डेटा सीधे ईमेल में चला जाएगा।
00:03:56अब मैं इस ऑपरेशन को सेव कर सकता हूँ और हम फ्लो को सेव करेंगे और काम पूरा हो गया।
00:04:00ठीक है, अब इसे देखें।
00:04:02मैं वापस जाने वाला हूँ।
00:04:03और अपनी शुरुआती Docker-compose फ़ाइल में, मैंने इसे टेस्ट करने के लिए Mailpit जोड़ा था।
00:04:07यह ईमेल भेजने के फ़ंक्शन को टेस्ट करने का एक बहुत ही सरल तरीका है।
00:04:11जब मैं एक और ऑर्डर बनाता हूँ, पहले की तरह ही, कुछ भी खास नहीं,
00:04:14लेकिन इस बार कुछ अलग है।
00:04:16यह अब फ्लो को ऑटोमैटिकली ट्रिगर करता है और विवरण के साथ एक ईमेल बाहर जाता है।
00:04:20यहाँ कोई बैकएंड लॉजिक नहीं है।
00:04:22चीजों को आपस में जोड़ने (wiring) की कोई ज़रूरत नहीं है।
00:04:25यह बिना किसी टेबल, बिना बैकएंड, बिना किसी वास्तविक ढांचे के शुरू हुआ था।
00:04:30और कुछ ही मिनटों में, यह डेटा परमिशन और हाँ,
00:04:33ऑटोमेशन वाला एक वर्किंग ऐप है, जो कि सबसे अच्छी बात थी।
00:04:35और यही बात Directus को बहुत कूल बनाती है।
00:04:38यह लगभग विजुअल डेटाबेस लॉजिक और n8n या Zapier के कॉम्बिनेशन जैसा महसूस होता है,
00:04:43लेकिन वास्तव में यह उनके साथ मुकाबला नहीं करता।
00:04:45तो Directus असल में क्या है?
00:04:47यह एक ओपन सोर्स डेटा प्लेटफॉर्म है जो आपके SQL डेटाबेस के ऊपर बैठता है।
00:04:52यह उसके बगल में नहीं बैठता।
00:04:53यह उसके ठीक ऊपर बैठता है।
00:04:55वह 'डेटाबेस फर्स्ट मॉडल' ही इसकी मुख्य बात है, है ना?
00:04:58तो इसका असल में क्या मतलब है?
00:04:59इसका हमारे लिए कुछ मतलब है।
00:05:01इसका मतलब है कि इसमें कोई लॉक-इन (lock-in) नहीं है।
00:05:03पूरा SQL अभी भी वहीं है और यह पुराने सिस्टम के साथ काम करता है।
00:05:07इसीलिए लोग इसका इस्तेमाल SaaS बैकएंड, इंटरनल टूल्स, हेडलेस CMS सेटअप,
00:05:13और कंट्रोल्ड डेटा वाले AI एजेंट्स के लिए करते हैं।
00:05:15आप सब कुछ दोबारा लिखे बिना किसी पुराने सिस्टम को मॉडर्नाइज करने की कोशिश कर रहे हैं।
00:05:19आपका डेटाबेस ही यहाँ वास्तविक इंजन है।
00:05:21Directus बस इसे एक डैशबोर्ड और कंट्रोल देता है।
00:05:24अब, पहली नज़र में, अगर आपने Strapi, Payload, Hasura जैसे अन्य टूल इस्तेमाल किए हैं,
00:05:28तो Directus भी वैसा ही दिखेगा, लेकिन वे असल में अलग समस्याओं को हल करते हैं।
00:05:33Strapi और Payload 'कोड फर्स्ट' हैं।
00:05:36आप कोड में स्कीमा को परिभाषित करते हैं, फिर वहां अपना स्ट्रक्चर फिर से बनाते हैं।
00:05:40हाँ, वह काम तो करता है, लेकिन वह अतिरिक्त काम है।
00:05:42Directus कुछ बदलावों के साथ चीज़ें बदल देता है।
00:05:45आपका स्कीमा पहले से मौजूद है, इसलिए इसे फिर से बनाने के बजाय, आप बस इसे कनेक्ट करते हैं।
00:05:50यह पूरी तरह से अलग वर्कफ़्लो है।
00:05:52Hasura तेज़ GraphQL के लिए बढ़िया है, लेकिन Directus उससे कहीं आगे जाता है।
00:05:58आपको API मिल रहे हैं।
00:05:59हाँ, हमें वह मिलता है, लेकिन हमें एडमिन वर्कस्पेस, परमिशन, फाइलें और ऑटोमेशन भी मिल रहे हैं।
00:06:05और यह वह हिस्सा है जिसकी अधिकांश डेवलपर्स को इसे आज़माने के बाद परवाह होती है, परमिशन।
00:06:10मैं यहाँ केवल सामान्य नियमों की बात नहीं कर रहा हूँ।
00:06:12हम बिना किसी प्लगइन के वास्तविक कंट्रोल की बात कर रहे हैं।
00:06:15तो अगर आपकी समस्या यह है कि मुझे बैकएंड की ज़रूरत है, तो आपके पास विकल्प हैं।
00:06:18लेकिन अगर आपकी समस्या यह है कि मैं अपना बैकएंड फिर से नहीं बनाना चाहता, तो यह अलग है।
00:06:23अब, ज़ाहिर है, कोई भी टूल परफेक्ट नहीं होता, लेकिन यह काफी बेहतरीन है।
00:06:26मुझे क्या लगा कि बहुत कूल था?
00:06:28खैर, परमिशन बस बेहतरीन काम करती हैं।
00:06:29वह शानदार है।
00:06:30फ्लो हमारे बहुत सारे फालतू काम को खत्म कर देते हैं।
00:06:32UI बहुत साफ और तेज़ था, और इसे Docker के साथ डिप्लॉय करना आसान है।
00:06:37इन सबके अलावा, यह बहुत अच्छी तरह से स्केल करता है।
00:06:39लेकिन इन सब अच्छी चीजों के साथ, ज़ाहिर है, हमेशा कुछ कमियाँ भी होती हैं।
00:06:43तो कमियाँ कुछ ऐसी होंगी जैसे एडवांस फ्लो में समय लग सकता है, ठीक है?
00:06:46अगर आपने कभी n8n या किसी और टूल के साथ काम किया है, तो आप समझ सकते हैं।
00:06:49डॉक्यूमेंटेशन (Docs) हमेशा पर्याप्त नहीं होते।
00:06:51और अगर आप खुद होस्ट (self-host) करते हैं, तो आपको इन्फ्रा को खुद मैनेज करना होगा।
00:06:54साथ ही, कॉम्प्लेक्स सेटअप लोकली थोड़ा उलझा हुआ हो सकता है।
00:06:57Directus बस एक विशिष्ट प्रकार के दोहराव वाले बैकएंड काम को हटा देता है।
00:07:00तो क्या Directus लायक है?
00:07:02हम में से बहुतों के लिए, संभवतः हाँ।
00:07:03यह इस पर निर्भर करता है कि हम क्या कर रहे हैं, खासकर यदि आपके पास पहले से ही SQL डेटा है, या यदि आप
00:07:07इन बुनियादी बैकएंड्स को बार-बार बनाने से थक चुके हैं, तो हाँ,
00:07:11यह वाकई काम की चीज़ है।
00:07:13यह समय बचाता है, मेंटेनेंस कम करता है, और आप डेटा पर कंट्रोल रखते हैं।
00:07:17एक बार फिर, यह ओपन सोर्स है।
00:07:19हम उसे कंट्रोल करते हैं।
00:07:20आप इसका उपयोग कब नहीं करेंगे?
00:07:22खैर, अगर आप एक सख्त Typescript वाले बड़े मोनोरेपो (monorepo) में हैं, तो शायद नहीं, है ना?
00:07:26अगर आपके पास कोई मौजूदा डेटाबेस नहीं है, तो शायद नहीं।
00:07:29और अगर आप शुरू से ही सब कुछ कोड में परिभाषित करना चाहते हैं, तो Payload जैसी कोई चीज़
00:07:33वहाँ ज़्यादा समझदारी भरा विकल्प होगी।
00:07:34लेकिन अगर आप अभी सोच रहे हैं कि, क्या यह बस मेरे डेटाबेस के ऊपर बैठ सकता है?
00:07:38हाँ, यह बैठ सकता है।
00:07:39तो इसे आज़माना सही हो सकता है।
00:07:41अगर आप इस तरह के ओपन सोर्स टूल्स और कोडिंग टिप्स का आनंद लेते हैं, तो
00:07:45Better Stack चैनल को सब्सक्राइब करना न भूलें।
00:07:46हम आपसे दूसरे वीडियो में मिलेंगे।