चुनिंदा काम

Shoppin': AI शॉपिंग, एंड-टू-एंड

भूमिका
योगदान दिया
स्टैक
React Native · Next.js · Node.js · Python · Postgres · AI / LLM pipelines

समस्या

ऑनलाइन शॉपिंग एक सर्च प्रॉब्लम है जो ब्राउज़िंग प्रॉब्लम होने का दिखावा करती है। लोग मोटे तौर पर जानते हैं कि उन्हें क्या चाहिए, “लिनन शर्ट, ढीली नहीं, 2k से कम”, लेकिन स्टोर उन्हें उस इरादे को फिल्टर, कैटेगरी और किस्मत में बदलने पर मजबूर करते हैं। Shoppin’ इस अंतर को खत्म करने के लिए मौजूद है: लोगों को वैसे ही शॉपिंग करने दें जैसे वे सोचते हैं, AI अनुवाद का काम करेगा।

मैं प्रोडक्ट टीम के हिस्से के रूप में इस पर काम करता हूँ। मेरा काम उन सभी सतहों पर प्रोडक्ट इंजीनियरिंग करना है जिन पर यह रहता है: iOS और Android ऐप्स, वेब अनुभव, और उनके पीछे Node और Python बैकएंड, जबकि प्रोडक्ट अभी भी अपना आकार ढूँढ रहा है।

भूमिका

मैं यहाँ एक प्रोडक्ट इंजीनियर के रूप में काम करता हूँ, और कोड उस काम का छोटा आधा हिस्सा है। कुछ भी बनाने से पहले मैं जानना चाहता हूँ कि यह फीचर उपयोगकर्ता को कैसा महसूस कराता है और क्या यह वास्तव में प्रोडक्ट को आगे बढ़ाता है। इसका मतलब है कि प्रोडक्ट और डिज़ाइन कॉल के करीब रहना, न कि केवल टिकटों के: PostHog में व्यवहार पढ़ना, WebEngage के माध्यम से लाइफसाइकिल और री-एंगेजमेंट फ्लो चलाना, और Google Search Console देखना ताकि वेब सतह खोजने योग्य बनी रहे। एक फीचर जो साफ-सुथरा शिप होता है लेकिन कोई नहीं अपनाता, वह एक ऐसी विफलता है जिसे मैं माप सकता हूँ, इसलिए मैं अपनाने और बनाए रखने को अपनी “डन” की परिभाषा का हिस्सा मानता हूँ, न कि किसी और की समस्या।

मैं किस पर काम करता हूँ

एक जेनरेटेड कैटलॉग जिसमें अनंत शेल्फ है। पिछले तीन महीनों से टीम Shoppin’ के ई-कॉमर्स पक्ष का निर्माण कर रही है, और यह सामान्य मॉडल को तोड़ता है: लोग जो कपड़े खरीदते हैं वे कभी गोदाम में नहीं थे। ऐप और साइट पर दिखाए गए टुकड़े AI द्वारा जेनरेट किए गए या सोर्स किए गए हैं, फिर सूचीबद्ध किए गए हैं, इसलिए शेल्फ प्रभावी रूप से असीमित है और हर ड्रेस एक व्यक्ति के लिए ऑर्डर पर बनाई जाती है। कोई इन्वेंट्री नहीं का मतलब कोई स्टॉकआउट नहीं और कोई डेड स्टॉक नहीं, लेकिन इसका मतलब यह भी है कि ऑर्डरिंग और फुलफिलमेंट को यह मानना होगा कि जब तक कोई वास्तव में इसकी मांग नहीं करता तब तक कुछ भी मौजूद नहीं है। मैं उस पूरे रास्ते पर काम करता हूँ: वेब स्टोर, ऐप, Node कॉमर्स बैकएंड, और जनरेशन और AI कार्य के पीछे Python सेवाएं।

चैट जो परिधान को एडिट करता है। मेरे स्वामित्व वाली एक विशेषता उपयोगकर्ता को AI से बात करने और कपड़े को ही बदलने देती है, एक टुकड़े को तब तक ट्विक करती है जब तक कि वह वह चीज़ न बन जाए जो वे चाहते थे। पहला संस्करण काम करता था लेकिन धीमा और असंगत था, इसलिए मैंने पाइपलाइन और प्रॉम्प्टिंग को ऑप्टिमाइज़ किया जब तक कि प्रतिक्रियाएँ तेजी से और विश्वसनीय रूप से लक्ष्य पर वापस नहीं आने लगीं। यह प्रोडक्ट का वह हिस्सा है जो जादू जैसा लगता है, इसलिए इसे सहज महसूस होना चाहिए।

भुगतान, हर जगह जहाँ लोग भुगतान करते हैं। मैंने भुगतान परत को एंड-टू-एंड बनाया: भारत के लिए Razorpay, अंतरराष्ट्रीय के लिए Stripe, और ऐप के अंदर नेटिव Apple Pay और Google Pay ताकि चेकआउट उस भुगतान विधि का उपयोग करे जिस पर लोग अपने डिवाइस पर पहले से ही भरोसा करते हैं। चीज़ चाहने और उसे पाने के बीच कम टैप।

दोनों प्लेटफॉर्म पर काम करने वाली सदस्यताएँ। मैंने Qonversion के साथ सदस्यता सिस्टम को एकीकृत किया, ताकि आवर्ती योजनाएँ iOS और Android पर लगातार व्यवहार करें बिना प्रति प्लेटफॉर्म रसीद सत्यापन और पात्रता तर्क को हाथ से बनाए। खरीद की स्थिति और पहुँच एक ही जगह पर रहती है, जो ठीक वही जगह है जहाँ सदस्यता बग्स छिपते हैं।

WhatsApp पर ऑर्डर अपडेट। जब कोई ऑर्डर करता है, तो उसे यह जानने के लिए ऐप पर वापस आने की ज़रूरत नहीं होनी चाहिए कि क्या हो रहा है। मैंने वह फ्लो बनाया जो प्रत्येक ऑर्डर अपडेट को WhatsApp पर ग्राहक तक पहुँचाता है, ताकि हर स्टेटस चेंज उन तक पहुँचे जहाँ वे पहले से ही हैं।

ऑर्डर चलाने के लिए एक डैशबोर्ड। ऑर्डरों को प्रबंधित करने के लिए एक जगह की आवश्यकता होती है, इसलिए मैंने वह आंतरिक डैशबोर्ड बनाया जिसका उपयोग टीम ऑर्डरों को उनके लाइफसाइकिल के माध्यम से देखने और स्थानांतरित करने के लिए करती है। ग्राहक-सामने वाला प्रोडक्ट केवल उतना ही अच्छा होता है जितनी उसके पीछे की ऑपरेशंस।

दो बैकएंड, एक प्रोडक्ट। Node.js कॉमर्स और प्रोडक्ट API चलाता है; Python AI और जनरेशन का काम चलाता है। उन्हें अलग रखने से प्रत्येक को अपनी शर्तों पर बढ़ने का मौका मिलता है जबकि क्लाइंट एक साझा कॉन्ट्रैक्ट पर पतले दृश्य बने रहते हैं। ऐप्स के लिए React Native, वेब के लिए Next.js।

सही टूल के साथ तेज़ी से। मैं Claude Code पर निर्भर करता हूँ ताकि इतनी बड़ी सतह पर गुणवत्ता को गिरने दिए बिना तेज़ी से आगे बढ़ सकूँ, जिससे मैं ऐप, वेब और दोनों बैकएंड पर उस गति से काम कर पाता हूँ जिसकी एक शुरुआती चरण के प्रोडक्ट को आवश्यकता होती है।

निर्णय

एक प्रोडक्ट ब्रेन, कई सतहें। ऐप्स, वेब और बैकएंड का स्वामित्व एक ही छोटी टीम के पास होने के कारण, सबसे सस्ता आर्किटेक्चर एक साझा API परत थी जो हर क्लाइंट को एक पतले दृश्य के रूप में मानती है। फीचर्स एक बार आते हैं, हर जगह शिप होते हैं। इसका नुकसान यह है कि प्लेटफॉर्म-विशिष्ट पॉलिश के लिए जानबूझकर बजट की आवश्यकता होती है; हमने इसे वहाँ खर्च किया जहाँ उपयोगकर्ता वास्तव में इसे महसूस करते हैं (जेस्चर रिस्पॉन्सिवनेस, इमेज लोडिंग) और जहाँ वे नहीं करते वहाँ इसे छोड़ दिया।

AI को वहाँ शिप करें जहाँ यह अपना काम करता है। LLM कॉल स्टैक में बाकी सब की तुलना में धीमे और महंगे होते हैं। हमने इरादे को कैप्चर करने और परिधान को एडिट करने के लिए बातचीत की परत को रखा, वह हिस्सा जिसे उपयोगकर्ता पसंद करते हैं, और जो कुछ भी प्रीकंप्यूट किया जा सकता था उसे बैकग्राउंड जॉब्स में ले गए। ऐप AI जैसा लगता है; लेटेंसी बजट एक सामान्य ई-कॉमर्स ऐप जैसा पढ़ता है।

उत्पादन में ईमानदारी से दोहराएँ। शुरुआती चरण के प्रोडक्ट छह महीने के रोडमैप पर जीवित नहीं रहते। हमने छोटे शिप किए, वास्तविक व्यवहार देखा, और उन फीचर्स को खत्म कर दिया जिन्होंने उपयोग को आगे नहीं बढ़ाया, जिनमें वे भी शामिल थे जिन्हें हम पसंद करते थे।

परिणाम

प्रोडक्ट वेब पर लाइव है और ऐप्स स्टोर में हैं, लगातार शिपिंग हो रही है: फीचर्स iOS, Android और वेब पर एक ही रिलीज़ साइकिल में आते हैं, भुगतान तीन रेलों पर क्लियर होते हैं, ऑर्डर अपडेट WhatsApp पर लोगों तक पहुँचते हैं, और AI परत एक सामान्य ई-कॉमर्स लेटेंसी बजट के अंदर चलती है। सबसे मजबूत संकेत ताल है: यह एक छोटी टीम है जो हर हफ्ते उत्पादन में दोहरा रही है, न कि एक लॉन्च जो चलना बंद हो गया।

यह केस स्टडी जारी है; यह प्रोडक्ट के बढ़ने के साथ बढ़ती है।