ब्लॉग
सर्वरलेस कॉन्टैक्ट फ़ॉर्म: यहाँ "सर्वरलेस" का असल मतलब क्या है
· 5 मिनट का पठन
"सर्वरलेस" की शुरुआत एक सटीक शब्द के रूप में हुई थी: आपका कोड किसी और के इन्फ्रास्ट्रक्चर पर एक फ़ंक्शन के रूप में चलता है, और आपको कभी भी ख़ुद सर्वर प्रोविज़न, पैच या स्केल नहीं करना पड़ता। कॉन्टैक्ट फ़ॉर्म पर लागू होने पर, यह शब्द भटक गया है - अब यह दो सचमुच अलग-अलग सेटअप के लिए इस्तेमाल होता है, और आप कौन-सा चुनते हैं, यह तय करता है कि आप कितने काम के लिए तैयार हो रहे हैं।
यहाँ वह अंतर है, और होस्ट किया गया फ़ॉर्म बैकएंड इसमें कहाँ फ़िट बैठता है।
"सर्वरलेस कॉन्टैक्ट फ़ॉर्म" के दो मतलब हो सकते हैं
यह वाक्यांश खोजें और आपको दो अलग-अलग जवाब मिले-जुले मिलेंगे:
- आप एक फ़ंक्शन लिखते हैं। एक AWS Lambda, एक Cloudflare Worker, एक Vercel या Netlify फ़ंक्शन — एक छोटा हैंडलर जिसे आप डिप्लॉय करते हैं, जो POST प्राप्त करता है, SES या Resend जैसे प्रोवाइडर के ज़रिए ईमेल भेजता है, और एक रिस्पॉन्स लौटाता है।
- आप बिल्कुल कोई बैकएंड कोड नहीं लिखते। आपका फ़ॉर्म सीधे एक होस्ट की गई सेवा को POST भेजता है जो पहले से मौजूद है — कोई फ़ंक्शन लिखने, डिप्लॉय करने या वर्ज़न करने की ज़रूरत नहीं।
दोनों संकीर्ण अर्थ में "सर्वरलेस" हैं: दोनों में से किसी में भी ऐसी मशीन शामिल नहीं है जिस पर आप SSH करके पैच करें। लेकिन प्रयास के पैमाने पर दोनों बहुत अलग-अलग जगहों पर आते हैं।
विकल्प A: आपका अपना फ़ंक्शन
अपना ख़ुद का हैंडलर लिखना आपको पेलोड, ईमेल टेम्पलेट, और स्टोरेज गंतव्य पर पूरा नियंत्रण देता है। इस नियंत्रण के साथ असली ज़िम्मेदारी भी आती है:
- कोल्ड स्टार्ट। जो फ़ंक्शन हाल में नहीं चला, उसे शुरू होने में थोड़ा समय लगता है, जो शांत साइटों पर धीमे पहले सबमिशन के रूप में दिखता है।
- ईमेल डिलिवरेबिलिटी आपकी ज़िम्मेदारी है। SPF, DKIM, और DMARC रिकॉर्ड्स, बचाने लायक़ एक सेंडिंग रेपुटेशन, और कॉन्फ़िगर व मॉनिटर करने के लिए एक प्रोवाइडर अकाउंट।
- स्पैम फ़िल्टरिंग आपकी ज़िम्मेदारी है। जब तक आप ख़ुद रेट लिमिटिंग, एक हनीपॉट, या CAPTCHA चैलेंज नहीं बनाते, कुछ भी किसी बॉट को सीधे आपके फ़ंक्शन के URL पर POST करने से नहीं रोकता।
- अगर आपको कोई इतिहास चाहिए, तो स्टोरेज भी आपकी ज़िम्मेदारी है। फ़ंक्शन के अंदर डेटाबेस कॉल के बिना, जो सबमिशन ईमेल भेजने में विफल हो जाता है, वह बस खो जाता है।
यह सही समझौता तब है जब फ़ॉर्म असली बिज़नेस लॉजिक ट्रिगर करता है — CRM में लिखना, एक वर्कफ़्लो शुरू करना, "संदेश किसी इंसान तक पहुँचाने" से आगे कुछ भी। एक सादे कॉन्टैक्ट फ़ॉर्म के लिए, यह बहुत सारा अविभेदित बुनियादी ढाँचा है जिसे संभालना पड़ता है।
विकल्प B: बिल्कुल कोई बैकएंड कोड नहीं
"सर्वरलेस" की दूसरी व्याख्या फ़ंक्शन को पूरी तरह छोड़ देती है। आपका <form> एक ऐसे एंडपॉइंट को POST भेजता है जो पहले से मौजूद है, किसी और द्वारा चलाया जाता है, जहाँ प्राप्त करना, स्पैम फ़िल्टर करना, सूचित करना और संग्रहीत करना पहले से बना हुआ और पहले से चल रहा है। आप शून्य बैकएंड कोड लिखते हैं और कुछ भी डिप्लॉय नहीं करते — कोल्ड-स्टार्ट करने, पैच करने, या मॉनिटर करने के लिए आपका कोई फ़ंक्शन नहीं है, क्योंकि तस्वीर में आपका कोई फ़ंक्शन है ही नहीं।
यहाँ समझौता नियंत्रण का है: आपको प्रोवाइडर का स्पैम फ़िल्टर, प्रोवाइडर की रिटेंशन पॉलिसी, प्रोवाइडर के नोटिफ़िकेशन चैनल मिलते हैं — आपका अपना कस्टम लॉजिक नहीं। ऐसे फ़ॉर्म के लिए जिसका पूरा काम "सबमिशन को भरोसेमंद तरीक़े से मुझ तक पहुँचाना" है, यह शायद ही कभी कोई असली लागत होती है।
कॉन्टैक्ट फ़ॉर्म के लिए असल में क्या सही है
ज़्यादातर कॉन्टैक्ट फ़ॉर्म को कस्टम वर्कफ़्लो लॉजिक की ज़रूरत नहीं होती — उन्हें बस बिना खोए या स्पैम के तौर पर फ़िल्टर हुए एक इंसान तक पहुँचना होता है। अगर यही पूरा काम है, तो एक फ़ंक्शन लिखना और उसे संभालना एक ऐसी समस्या हल करना है जो आपके पास है ही नहीं: आप SPF रिकॉर्ड्स और रेट-लिमिट लॉजिक पर असली घंटे ख़र्च करके वह फिर से बनाएँगे जो एक होस्ट किया गया बैकएंड पहले से करता है। अपना ख़ुद का फ़ंक्शन तभी अपनाएँ जब फ़ॉर्म किसी इनबॉक्स से ज़्यादा कुछ खिलाता हो — डेटाबेस में लिखना, एक पेड वर्कफ़्लो, एक मल्टी-स्टेप प्रोसेस जिसे कोई सामान्य सेवा व्यक्त नहीं कर सकती। (फ़ॉर्म बैकएंड रोज़मर्रा में क्या करता है, इसकी व्यापक तस्वीर के लिए देखें फ़ॉर्म बैकएंड क्या है।)
Formhook: वह एंडपॉइंट जो पहले से मौजूद है
Formhook सर्वरलेस का दूसरा प्रकार है। किसी फ़ॉर्म को https://formhook.app/f/{apiKey} पर पॉइंट करें, और डिप्लॉय, कोल्ड-स्टार्ट, या पैच करने के लिए कुछ भी नहीं है — यहाँ तक कि कोई फ़ंक्शन भी नहीं। स्पैम फ़िल्टरिंग (एक हनीपॉट फ़ील्ड, रेट लिमिटिंग, और डिफ़ॉल्ट रूप से Cloudflare Turnstile), स्टोरेज, एक खोजने योग्य डैशबोर्ड, और सूचनाएँ — ईमेल के साथ-साथ फ़्री सहित हर टियर पर वेब पुश — आपके एक भी लाइन कोड लिखने से पहले ही चल रही होती हैं। ऑटोमैटिक Discord, Slack, और Teams डिटेक्शन के साथ आउटगोइंग वेबहुक उन मामलों को कवर करते हैं जहाँ आप सचमुच किसी सबमिशन को किसी दूसरे सिस्टम को सौंपना चाहते हैं, वह प्राप्त करने वाला फ़ंक्शन भी आपको लिखे बिना।
फ़्री टियर बिना किसी कार्ड की ज़रूरत के प्रति माह 250 सबमिशन संभालता है। Pro में 10MB तक फ़ाइल अपलोड और reply-to के साथ एक सत्यापित सेंडिंग डोमेन जुड़ता है; Studio टीमों के लिए सीमा को प्रति माह 25,000 सबमिशन तक बढ़ा देता है। इंटीग्रेशन के लिए डॉक्स देखें, या पूरी जानकारी के लिए प्राइसिंग देखें।
एक ही लाइन में काम करने वाला फ़ॉर्म
EU-होस्टेड, सबमिशन हमेशा के लिए सुरक्षित, हर टियर पर पुश सूचनाएँ।
मुफ़्त में शुरू करेंक्रेडिट कार्ड नहीं चाहिए · दस्तावेज़ पढ़ें
आगे पढ़ें
- फ़ॉर्म बैकएंड क्या है? (और आपको इसकी ज़रूरत कब है)फ़ॉर्म बैकएंड आपकी वेबसाइट के फ़ॉर्म सबमिशन प्राप्त करता, संग्रहीत करता और आगे भेजता है — बिना सर्वर चलाए। ये कैसे काम करते हैं और कब चाहिए।
- GitHub Pages में कॉन्टैक्ट फ़ॉर्म कैसे जोड़ेंGitHub Pages सर्वर कोड नहीं चला सकता, फिर भी काम करने वाला कॉन्टैक्ट फ़ॉर्म संभव है। तीन तरीकों की तुलना, साथ ही एक मिनट का कॉपी-पेस्ट समाधान।
- Cloudflare Pages में कॉन्टैक्ट फ़ॉर्म कैसे जोड़ेंCloudflare Pages के पास Netlify जैसी कोई बिल्ट-इन फ़ॉर्म-हैंडलिंग सेवा नहीं है। यहाँ बताया गया है क्यों, और फिर भी सबसे तेज़ तरीके से काम करने वाला कॉन्टैक्ट फ़ॉर्म लाइव करने का तरीका।