Groselia
सोशल मीडिया जो ख़ुद चलता है
मेरी भूमिका
- को-फ़ाउंडर
- इंजीनियरिंग
- प्रोडक्ट और ब्रांड डिज़ाइन
विवरण
Groselia सबसे पहले टेक स्टार्टअप्स के लिए, और दूसरे उद्योगों और आकार की कंपनियों के लिए भी, सोशल मीडिया चलाता है: स्ट्रैटेजी, डिज़ाइन, पब्लिशिंग, टिप्पणियों के जवाब और रिपोर्टिंग, हर चैनल पर, एक ही प्लेटफ़ॉर्म से।
टीम
Danilo Parmegianiको-फ़ाउंडर
Pedro Critchiको-फ़ाउंडर
पृष्ठभूमि
मैंने Pedro के साथ दो लोगों की टीम के रूप में Groselia शुरू किया। वह मार्केटिंग, सेल्स और ऑपरेशंस संभालते हैं; मैंने ब्रांड और प्रोडक्ट डिज़ाइन किया और वह प्लेटफ़ॉर्म बनाया जिस पर यह चलता है, डेटाबेस से लेकर आख़िरी एनिमेशन तक। जब यह सेल्फ़-सर्व था, तब 200 से ज़्यादा लोगों ने इसके लिए साइन अप किया, और आज यह हमारे ग्राहकों का कंटेंट और सोशल मीडिया चलाता है। जून 2026 में हमने Link Vector से R$100k का प्री-सीड जुटाया, जो Link School of Business का एक्सेलरेटर है, जहाँ से मैंने ग्रेजुएशन किया, और सर्विस की ओर पिवट के दो महीने बाद Groselia हर महीने R$15,000 से ज़्यादा कमाता है।
टूल
- Codex
- Claude Code
- Figma
- Adobe tools
स्टैक
React
Next.js
TypeScript
Tailwind
Supabase
Frontier LLMs
Trigger.dev
Stripe
Vercel
टाइमलाइन
- 2025–अब तक
चुनौती
बनाना अब रुकावट नहीं रहा। दिखना रुकावट बन गया।
AI ने सॉफ़्टवेयर बनाने की लागत गिरा दी। बिना इंजीनियरिंग बैकग्राउंड वाला फ़ाउंडर अब एक वीकेंड में प्रोडक्ट शिप कर सकता है, और बाक़ी सब भी। जो सस्ता नहीं हुआ, वह है किसी का ध्यान खींचना। डिस्ट्रिब्यूशन एक लगातार चलने वाला ऑपरेशन है, कोई एक काम नहीं: हर दिन पोस्ट करना, आठ नेटवर्क पर जिनमें हर एक को अलग फ़ॉर्मेट चाहिए, हर टिप्पणी का जवाब देना, और ऐसे आँकड़े पढ़ना जिन्हें हर ऐप अलग तरह से रिपोर्ट करता है।
स्टार्टअप इसकी क़ीमत तीन में से किसी एक तरीक़े से चुकाते हैं। वे ऐसी टीम रखते हैं जिसका ख़र्च वे अभी उठा नहीं सकते, वे दर्जन भर टूल जोड़ते हैं जिनमें हर एक बस एक टुकड़ा सुलझाता है, या वे कुछ पोस्ट नहीं करते और ग्रोथ से क़ीमत चुकाते हैं। Groselia चौथा विकल्प बनने के लिए है।
यहाँ तक कैसे पहुँचे
Groselia ने चार बार अपना रूप बदला, तब जाकर पता चला कि वह असल में क्या है। हर मोड़ पर जो काम किया वह रखा, और बाक़ी छोड़ दिया।

2025 का अंत – फ़र॰ 2026
Argibee
एक AI ब्रांड-डिज़ाइन प्लेटफ़ॉर्म। यह 2025 के अंत में एक प्रोटोटाइप के रूप में शुरू हुआ और फ़रवरी 2026 में असली कंपनी बना। इसे अपना मार्केट नहीं मिला, लेकिन इसका ब्रांड-किट इंजन उसके बाद की हर चीज़ की रीढ़ बन गया।

अप्रैल 2026
मोशन वीडियो
Groselia की शुरुआत After Effects टेम्पलेट से बने Apple-स्टाइल लॉन्च वीडियो के रूप में हुई। मैंने पूरी पाइपलाइन हाथ से परखी, और फिर देखा कि यह क्वालिटी के स्तर पर स्केल नहीं हो सकती।

जून 2026
Link Vector से प्री-सीड
हम Link School of Business के Startup School में शामिल हुए, फ़ाउंडर्स के लिए 100 दिनों का प्रोग्राम जिसे एक रियलिटी शो की तरह फ़िल्माया गया (सीज़न देखें)। यह एक डेमो डे के साथ ख़त्म हुआ जहाँ मैंने स्टेज पर Groselia को पिच किया, और हमारे प्री-सीड के साथ: Link Vector से R$100k, जो Link School of Business का एक्सेलरेटर है, जहाँ से मैंने ग्रेजुएशन किया।
अगस्त 2026
मार्केटिंग के लिए Lovable
फ़ॉर्म की जगह एक बातचीत: कैंपेन बताइए और Groselia उसे प्लान करता है, लिखता है और पब्लिश करता है। टूल वाला एक चैट एजेंट, बॉट्स की फ़ौज नहीं।
सितंबर 2026
एक सोशल मीडिया मैनेजर
ग्राहक नहीं चाहते थे कि AI उनका कंटेंट बनाए। वे चाहते थे कि उनकी अपनी फ़ोटो अच्छे से पोस्ट हों और उनकी टिप्पणियों के जवाब दिए जाएँ। हमने जनरेशन हटा दिया और चैनल चलाने पर पूरा ध्यान लगाया।

अब
सर्विस, सॉफ़्टवेयर की तरह
हम काम बेचते हैं, टूल नहीं। हमारी टीम हर ग्राहक का सोशल मीडिया इसी प्लेटफ़ॉर्म पर चलाती है, जिससे एक व्यक्ति वह चला पाता है जिसके लिए पहले पूरी एजेंसी लगती थी।
पब्लिक में बनाया
हमने शुरू से ही पब्लिक में बनाया। जब यह Argibee था, तब हमने YouTube पर अपना सफ़र शेयर किया, Argibee की वेटलिस्ट के लॉन्च से लेकर उस पहले वीडियो तक जिसमें हमने Groselia दिखाया। बाक़ी कहानी, वीडियो दर वीडियो, हमारे चैनल पर है.
ब्रांड
मैं चाहता था कि Groselia का ब्रांड बोल्ड हो: कुछ ऐसा जो लोगों को रुककर देखने पर मजबूर करे, वेबसाइट पर, ऐप में और हमारे सोशल मीडिया की हर पोस्ट में। कोई भी इसे जहाँ भी देखे, वह प्रभावित हो, थोड़ी तारीफ़ करे, और जो उसने अभी देखा उसकी वजह से हमें हायर करना चाहे। सबसे बढ़कर, इसे टेक स्टार्टअप्स को शानदार लगना था, वह इकोसिस्टम जिसका हम हिस्सा हैं और वे ग्राहक जिनके लिए हम सबसे पहले बनाते हैं।
मैंने पूरा ब्रांड Codex के अंदर Figma प्लगइन से डिज़ाइन किया: लोगो, टाइपोग्राफ़ी और वह सही अनुपात में सिंबल के साथ कैसे जुड़ती है, इमेजरी, SVG आइकन लाइब्रेरी, टाइप स्टाइल और एक व्यवस्थित कलर पैलेट। हर फ़ैसला एक ही बोर्ड पर गया, नापकर, ताकि उसकी तुलना हो सके और उस पर बहस हो सके।

सिंबल
सिंबल सबसे पहले आया और टिका रहा। एक केंद्र के चारों ओर घूमती तीन नरम पंखुड़ियाँ, यह कंपनी के बिल्कुल पहले वर्ज़न से चला आ रहा है, और नया लोगो इसके ऊपर नहीं बल्कि इसके इर्द-गिर्द बनाया गया: इसकी ज्यामिति को कॉपी और स्केल किया गया, कभी दोबारा नहीं बनाया गया।
वर्डमार्क
वर्डमार्क TT Commons Pro Bold में है, छोटे अक्षरों में, वेक्टर में आउटलाइन किया हुआ ताकि हर जगह एक जैसा दिखे। अपनी सामान्य स्पेसिंग पर यह सिंबल के बगल में ढीला लगता था, तो मैंने इसे −4% ट्रैकिंग तक कस दिया, 160px पर हर अक्षर को 6.4 यूनिट और बाईं ओर खिसकाकर। सुनने में मामूली लगता है; इससे शब्द की चौड़ाई 564 से 520 यूनिट हो गई और वह एक आकृति की तरह पढ़ा जाने लगा।
H का ग्रिड
सब कुछ H में नापा जाता है, यानी वर्डमार्क की दिखने वाली ऊँचाई, H/10 के ग्रिड पर। इस तरह लोगो स्केल होता है और किसी को फिर से आँख से अंदाज़ा नहीं लगाना पड़ता।
स्टैक्ड लोगो के लिए मैंने छह विकल्प बनाए, तीन सिंबल साइज़ (1.50H, 1.75H, 2.00H) और दो गैप (0.15H, 0.25H), और हमने चुना B: 1.75H का सिंबल, शब्द से 0.15H ऊपर। हॉरिज़ॉन्टल वाले के लिए मैंने 0.20H से 0.35H तक के गैप की तुलना की और तय किया 1.10H का सिंबल, 0.35H के गैप के साथ।
अपने कंस्ट्रक्शन ग्रिड पर स्टैक्ड लोगो। H वर्डमार्क की ऊँचाई है; ग्रिड H/10 का है।
हॉरिज़ॉन्टल
सिंबल 1.10H · गैप 0.35H
स्टैक्ड
सिंबल 1.75H · गैप 0.15H
सिंबल
मूल अनुपात, 0.93 : 1
Colour
The palette is fifteen colours, loud on purpose. But the logo only ever comes in four treatments: blue symbol with black text, blue with white, all black and all white. The other colours are grounds, never the symbol.
To prove that, I put the symbol and both lockups on twelve backgrounds, 24 studies each, and kept the ones where its silhouette survives. On blue grounds the symbol goes monochrome. Click a colour to copy it.
टाइपोग्राफ़ी
TT Commons Pro हर काम करता है: Light से ExtraBold तक छह वेट, 12 से 96px तक ग्यारह स्टेप का स्केल, और असली इटैलिक। मैंने फ़ाइल की सभी 688 टेक्स्ट लेयर इस पर माइग्रेट कीं, ताकि ब्रांड बुक, ऐप और वेबसाइट अब एक ही आवाज़ में बोलें।
मुख्य फ़ॉन्ट
TT Commons
Pro
ऐप आइकन
ऐप आइकन वह इकलौती जगह है जहाँ ब्रांड 3D में जाता है: पोर्सिलेन में सिंबल, परतों में, ऊपर से रोशनी और थोड़ी चमक। बाद के एक रिफ़्रेश में मैंने इसके अंदर सिंबल को 10% छोटा किया ताकि उसे अपनी टाइल में साँस लेने की जगह मिले। वर्डमार्क के साथ इसका अपना लॉकअप भी है, टाइल 1.5H पर।
3D चीज़ों की एक दुनिया
लोगो के आसपास 3D चीज़ों की एक पूरी टोली रहती है: गोल-गोल आँखों वाला दिल, चैट बबल, एक हैशटैग, चमकते सितारे। ये वेबसाइट पर और हमारी पोस्ट में ब्रांड की आवाज़ हैं, और कभी स्थिर नहीं रहते: ये तैरते हैं, और साइट पर कर्सर पर प्रतिक्रिया देते हैं। ये वाले भी: इन्हें धक्का दें, या किसी एक को खींचकर छोड़ दें।








Neo डूडल
हर फ़्लैट चीज़ के लिए Neo है, हमारा आइकन सेट: मोटी काली आउटलाइन, पैलेट से भरे रंग और एक सफ़ेद चमक। वेबसाइट पर हर आइकन एक सफ़ेद चिप में सादे लाइन आइकन की तरह शुरू होता है, और होवर करने पर अपने डूडल में बदल जाता है, उसके हिस्से एक-एक करके आते हैं: डिस्क उछलती है, बार गिरते हैं, चमक खिंचती है। ये वेबसाइट के अपने डूडल और एनिमेशन हैं, जस के तस कॉपी किए हुए। किसी एक पर होवर करें।
प्रोडक्ट
Groselia में सब कुछ एक चैट में टाइप करके होता है। आप लिखते हैं कि क्या जाना चाहिए और कब, और यह उसे शेड्यूल करता है, पब्लिश करता है, टिप्पणियों का जवाब देता है और बताता है कि क्या चला। काम एक प्लान के रूप में आता है जिसे ओनर अप्रूव करता है, दर्जन भर स्क्रीन चलाने के बजाय।
एक बातचीत, डैशबोर्ड नहीं
Groselia एक फ़ॉर्म के रूप में शुरू हुआ था: एक लक्ष्य चुनो, फ़ील्ड भरो, कैंपेन पाओ। अपने ही बिज़नेस के बारे में फ़ॉर्म भरना कोई नहीं चाहता, इसलिए अब हर ब्रांड के पास इसकी जगह एक बातचीत है।
आप अपना ब्रांड खोलते हैं और टाइप करते हैं। पूछिए कि इस हफ़्ते क्या पोस्ट करना चाहिए, अपने फ़ोन से फ़ोटो डालिए, या लिखिए “कल की टिप्पणियों का जवाब दो”। एजेंट जवाब देने से पहले देखता है: आपका कैलेंडर, क्या अच्छा चला, ब्रांड की मेमोरी।
जब उसे आपसे कुछ चाहिए होता है, तो वह सवालों का एक छोटा राउंड पूछता है जिनका जवाब आप एक टैप से देते हैं। फिर वह एक प्लान सुझाता है: तारीख़ और समय के साथ पोस्ट, जवाब, कोई भी बदलाव। आप जो चाहें एडिट करें, अप्रूव करें, और कैलेंडर को भरते हुए देखें।
यहाँ का कार्ड असली चैट है, ऐप के अपने टोकन से ब्राउज़र में दोबारा बनाया गया। बेझिझक इस्तेमाल करें।
दो बार डिज़ाइन किया: पहले ओनर्स के लिए, फिर हमारे लिए
पहले यूज़र थे छोटे बिज़नेस ओनर्स जो अपना सोशल मीडिया ख़ुद चलाते हैं। वे कैंपेन, फ़नल या पोस्टिंग कैडेंस में नहीं सोचते; वे सोचते हैं “इस हफ़्ते क्या पोस्ट करूँ?”। तो मुश्किल हिस्सा था मशीनरी को छिपाना: चार सवालों में ऑनबोर्डिंग, एक लिंक से भरा ब्रांड किट, ड्रैग किया जा सकने वाला कैलेंडर, हर स्क्रीन सत्रह भाषाओं में और फ़ोन पर इस्तेमाल लायक़।
फिर हमें समझ आया कि ग्राहक कोई भी टूल चलाना नहीं चाहते, चाहे वह कितना भी आसान हो। वे चाहते थे कि काम हो जाए। तो हम ख़ुद मुख्य यूज़र बन गए। हमारी टीम का एक व्यक्ति कई ब्रांड चलाता है, और उसी ऐप में मल्टी-ब्रांड वर्कस्पेस, मीटिंग से शुरू होकर रिपोर्ट पर ख़त्म होने वाले साइकल, हर पोस्ट पर अप्रूवल स्टेप और हर नेटवर्क के लिए एक इनबॉक्स जोड़ने पड़े। ग्राहक अब भी लॉग इन करते हैं, लेकिन अब ऐप वह जगह है जहाँ वे काम होते देखते हैं, जहाँ वे ख़ुद काम नहीं करते।
नवंबर 2026
एजेंट्स के पढ़ने के लिए बना
अब किसी ब्रांड या वेब पेज को सबसे पहले पढ़ने वाला अक्सर AI होता है। इसलिए Groselia में सब कुछ जितना लोगों के लिए लिखा है, उतना ही एजेंट्स के लिए भी। ब्रांड की मेमोरी सादे Markdown डॉक्यूमेंट्स का एक सेट है, पसंद, क्या करें और क्या न करें, ब्रांड के तथ्य, जिन्हें एजेंट हर जवाब से पहले पढ़ता है और चार टूल से ख़ुद एडिट करता है, वैसे ही जैसे AI असिस्टेंट अपनी मेमोरी रखते हैं। लोग ब्रांड किट में यही डॉक्यूमेंट खोलते और एडिट करते हैं।
Insights एक साझा कोर से चलती हैं जिसे डैशबोर्ड और एजेंट दोनों पढ़ते हैं, तो जब आप पूछते हैं “क्या चल रहा है?”, जवाब उन्हीं आँकड़ों से आता है जो आप देखते हैं। और वेबसाइट उन असिस्टेंट्स के लिए भी यही करती है जिनसे लोग हमारे बारे में पूछते हैं: groselia.com एक llms.txt, एक लंबी llms-full.txt और एक तुलना फ़ाइल देती है, सब कोड में तथ्यों के एक ही स्रोत से बने, ताकि हमारी क़ीमतों या सुरक्षा के बारे में AI जो कहे वह साइट से अलग न हो।
समय के साथ एंगेजमेंट
हर हफ़्ते, पिछले 30 दिन, पब्लिश की तारीख़ के हिसाब से
मुख्य फ़ीचर
एक लिंक से ब्रांड किट
एक वेबसाइट पेस्ट करें और अपने अकाउंट कनेक्ट करें। Groselia साइट स्क्रेप करता है, आपकी पुरानी पोस्ट पढ़ता है और लोगो, रंग, फ़ॉन्ट, आवाज़ और ऑडियंस ख़ुद भर देता है।
एक बातचीत
41 टूल वाला एक AI एजेंट आपके मीडिया के कैप्शन लिखता है, आपके अपने एंगेजमेंट डेटा से समय चुनता है, मेट्रिक्स पढ़ता है और जवाबों के ड्राफ़्ट बनाता है, फिर सबको एक प्लान में बाँध देता है।
आठ नेटवर्क के लिए एक कैलेंडर
Instagram, LinkedIn, TikTok, YouTube, X, Facebook, Threads और Reddit, हर एक अपने नेटिव फ़ॉर्मेट में, पुरानी पोस्ट इम्पोर्ट होकर, ताकि कैलेंडर कभी ख़ाली न रहे।
हर टिप्पणी का जवाब
हर नेटवर्क की टिप्पणियाँ और DM एक इनबॉक्स में, ब्रांड की आवाज़ में तैयार जवाबों के साथ, और कुछ भी संवेदनशील किसी इंसान के लिए रोककर।
आसान भाषा में Insights
हर अकाउंट की रीच, व्यू और एंगेजमेंट, इस बारे में ईमानदार कि हर प्लेटफ़ॉर्म क्या रिपोर्ट करता है और क्या नहीं, और “क्या चल रहा है?” का जवाब।
साइकल और अप्रूवल
काम साइकल में चलता है। हर साइकल एक मीटिंग से शुरू होता है, एक रिपोर्ट से ख़त्म होता है जिसे AI आँकड़ों से लिखता है, और हर पोस्ट ग्राहक की मंज़ूरी का इंतज़ार कर सकती है।
AI एजेंट्स के साथ बना
मैंने Groselia को AI एजेंट्स को अपनी इंजीनियरिंग टीम बनाकर बनाया। Codex और Claude Code ने कोड लिखा, हर बदलाव अपनी अलग ब्रांच पर, जबकि मैंने उसे डिज़ाइन किया, हर पुल रिक्वेस्ट रिव्यू की और तय किया कि क्या शिप होगा।
और अपने ज़्यादातर प्रॉम्प्ट मैंने टाइप करने के बजाय Wispr Flow से बोले। एक अच्छा प्रॉम्प्ट एक लंबा, विस्तृत ब्रीफ़ होता है, और बोलकर मैं उसे उतनी ही तेज़ी से दे पाता था जितनी तेज़ी से सोचता था।
Codex
कोडिंग एजेंट
Claude Code
कोडिंग एजेंट

Wispr Flow
वॉइस डिक्टेशन
वेबसाइट
वेबसाइट वह जगह है जहाँ ब्रांड खुलकर बोलता है। मैंने इसे Next.js में डिज़ाइन किया और बनाया। यह सत्रह भाषाओं में है, और साइन अप करते समय हर विज़िटर की भाषा ऐप को सौंप देती है।
एक हीरो जिससे आप खेल सकते हैं
पेज लोड होते समय लोगो घूमकर आता है, फिर हीरो: तैरते 3D प्रॉप्स, जो माउस के साथ झुकते हैं और कर्सर से इधर-उधर धकेले जाते हैं, और एक स्क्रॉल सीन जो “आपके लिए बना” पर ख़त्म होता है।

असली ऐप, दोबारा बनाया
“आपके Groselia के अंदर” प्लेटफ़ॉर्म को वैसा ही दिखाता है जैसा वह है, ऐप की अपनी स्क्रीन से एक डेमो ब्रांड के साथ कोड में दोबारा बनाया गया।

एक ब्लॉग
सोशल मीडिया चलाने पर नोट्स। पोस्ट सादी MDX फ़ाइलें हैं, हर भाषा के लिए एक, बिना किसी CMS के, और हर एक का अपना फ़ीड और स्ट्रक्चर्ड डेटा है ताकि सर्च इंजन और AI असिस्टेंट उसे सही पढ़ें।

एक फ़ॉर्म जो लीड को परखता है
हर “कॉल बुक करें” कैलेंडर से पहले एक छोटा फ़ॉर्म खोलता है: आप कौन हैं, कहाँ पोस्ट करते हैं, आपको क्या चाहिए और आपका बजट। हर स्टेप भरते-भरते हमारे डेटाबेस में सेव होता जाता है, तो हम अधूरे जवाब भी देख पाते हैं, और पूरा फ़ॉर्म Slack पर हमारी टीम को सूचना भेज देता है।

हमेशा रिस्पॉन्सिव
हर पेज फ़ोन के लिए भी डिज़ाइन किया गया है, सिर्फ़ छोटा करके फ़िट नहीं किया गया। जहाँ होवर नहीं होता, वहाँ सेक्शन स्क्रीन के बीच में पहुँचते ही जाग उठते हैं।



इंजीनियरिंग
आर्किटेक्चर
प्लेटफ़ॉर्म मैंने ख़ुद बनाया, AI को अपना जोड़ीदार बनाकर। ऐप React और Vite में है, लैंडिंग Next.js में, और दोनों एक ही Supabase प्रोजेक्ट पर टिके हैं: रो-लेवल सिक्योरिटी वाला Postgres, ऑथ, रियलटाइम और स्टोरेज, और 47 एज फ़ंक्शन। जो कुछ भी धीमा या शेड्यूल्ड है वह Trigger.dev पर चलता है, सोशल नेटवर्क एक पब्लिशिंग API से आते हैं, और Stripe प्लान, कार्ड और ब्राज़ील का boleto संभालता है।
एक MCP सर्वर और एक Codex प्लगइन भी है, ताकि Groselia को किसी AI एजेंट के अंदर से इस्तेमाल किया जा सके: वही ब्रांड, पोस्ट और ड्राफ़्ट, टूल के रूप में।
कहाँ इस्तेमाल होता है
कोर
इसके पीछे
ऐप, वेबसाइट और MCP सर्वर Vercel पर होस्ट होते हैं।
किसी बॉक्स पर होवर या टैप करें, देखें वह क्या करता है और किससे बात करता है।
एक पोस्ट का सफ़र
हिस्से कैसे जुड़ते हैं, यह देखने का सबसे अच्छा तरीक़ा है एक पोस्ट के पीछे चलना, चैट के एक वाक्य से लेकर Insights पर उसके आँकड़ों तक। स्टेप्स पर क्लिक करते जाएँ, या उन्हें अपने आप चलने दें।
वेब ऐप
ओनर पूछता है
“फ़सल की फ़ोटो शुक्रवार को Instagram और LinkedIn पर डाल दो।” मैसेज एजेंट के एज फ़ंक्शन पर जाता है, जो अपना जवाब स्ट्रीम करके वापस भेजता है।
एजेंट
एजेंट बाज़ार के सबसे अच्छे मॉडलों पर चलता है, Anthropic, OpenAI और दूसरे प्रोवाइडर्स के, एक स्ट्रीमिंग एज फ़ंक्शन के रूप में जिसमें टूल लूप है। मॉडल को अपने 41 टूल मिलते हैं, साथ में वेब सर्च और वेब फ़ेच, हर टर्न में आठ हॉप तक। मुश्किल कभी मॉडल नहीं था। मुश्किल यह पक्का करना था कि एजेंट को हमेशा पता हो कि इस वक़्त सच क्या है।
इसलिए हर टर्न में, मॉडल के मैसेज देखने से पहले, फ़ंक्शन डेटाबेस से कॉन्टेक्स्ट दोबारा बनाता है: ओनर के टाइमज़ोन में तारीख़ और समय, ब्रांड के मेमोरी डॉक्यूमेंट, लाइव कैलेंडर, खुले प्लान, अपलोड किए गए डॉक्यूमेंट और पुराने मैसेज का लगातार अपडेट होता सारांश। प्रॉम्प्ट का स्थिर हिस्सा एक घंटे के लिए कैश होता है; यह हिस्सा कभी कैश नहीं होता, इसलिए यह पुराना नहीं पड़ सकता।
बाक़ी सब दो नियमों से तय हुआ। जो कुछ भी पब्लिक है या वापस नहीं लिया जा सकता, वह एक प्लान में जाता है जिसे ओनर अप्रूव करता है, सीधे बाहर कभी नहीं। और कोई पोस्ट तभी मौजूद है जब इसी टर्न में किसी टूल ने उसे बनाया हो, इससे वे दिन ख़त्म हुए जब एजेंट ऐसे काम का ज़िक्र करता था जो उसने किया ही नहीं था। और एजेंट किसी एक मॉडल से बँधा नहीं है: जब एक छोटा, सस्ता मॉडल काफ़ी अच्छा हो गया, तो मैंने हर बातचीत की लागत घटाने के लिए चैट उस पर ले गया।
कॉन्टेक्स्ट, हर टर्न में नए सिरे से बना
टूल कॉल
प्लान, मंज़ूरी का इंतज़ार
फ़सल वाला हफ़्ता: 3 पोस्ट, 4 जवाब
// Volatile block: time + memory + live calendar + active plans + rolling summary. // Rebuilt each turn (never cached) so the agent always sees current state. const volatileSystem = () => { const parts = [ nowBlock, renderMemories(memories), renderCalendar(calendar, todayISO), renderPlans(plans), ] if (documents.length) parts.push(renderDocuments(documents)) if (rollingSummary) parts.push(`STORY SO FAR (summary of earlier messages in THIS conversation):\n${rollingSummary}`) // … then a line for each of the brand's other conversations return parts.join('\n\n') }
डेटा मॉडल
लगभग 55 टेबल, कुछ साफ़ समूहों में। एक वर्कस्पेस में मेंबर और ब्रांड होते हैं; बाक़ी सब ब्रांड से जुड़ा है, ताकि रो-लेवल सिक्योरिटी हर जगह एक ही सवाल का जवाब दे सके: क्या यह व्यक्ति इस ब्रांड का मेंबर है?
कौन
- वर्कस्पेस
- मेंबर
- ब्रांड रोल
- प्रोफ़ाइल
ब्रांड
- ब्रांड
- रंग, फ़ॉन्ट, लोगो
- प्रोडक्ट और लोग
- मेमोरी डॉक्यूमेंट
- ब्रांड डॉक्यूमेंट
चैट
- बातचीत
- मैसेज
- प्लान
- प्लान आइटम
कैलेंडर
- पोस्ट
- हर नेटवर्क के लिए एक
- पोस्ट मेट्रिक्स
- पोस्ट की टिप्पणियाँ
चैनल
- कनेक्टेड अकाउंट
- रोज़ाना अकाउंट मेट्रिक्स
- चैनल सेटिंग्स
इनबॉक्स और साइकल
- इनबॉक्स थ्रेड
- इनबॉक्स मैसेज
- जवाबों के ड्राफ़्ट
- साइकल
- साइकल रिपोर्ट
“कौन” के नीचे की हर चीज़ में एक ब्रांड id होती है; रो-लेवल सिक्योरिटी हर रीड और राइट पर इसे जाँचती है।
भरोसेमंदी और सुरक्षा
Groselia असली अकाउंट पर पब्लिश करता है, इसलिए सबसे महँगी गड़बड़ियाँ हैं कोई पोस्ट दो बार चली जाना, या कोई पोस्ट चुपचाप कभी न जाना। ज़्यादातर इंजीनियरिंग इसी पर है।
1दो बार अप्रूव, एक बार रन
प्लान रनर एक कंडीशनल अपडेट के साथ पहले प्लान को क्लेम करता है, फिर हर आइटम को, और हर आइडेम्पोटेंसी की आइटम की अपनी id से बनती है। डबल क्लिक या रीट्राई दोबारा पोस्ट करने के बजाय सिर्फ़ रीप्ले करता है।
2वेबहुक साइन किए जाते हैं और रीप्ले होते हैं
पब्लिशिंग API की हर डिलीवरी में एक वैध HMAC सिग्नेचर होना ज़रूरी है। हैंडलर आइडेम्पोटेंट हैं क्योंकि डिलीवरी एक से ज़्यादा बार आ सकती है, और एक जॉब हर दस मिनट में छूटे हुए इवेंट रीप्ले करता है।
3क्यू में डालने से पहले मना करें
एक साझा रूल फ़ाइल बताती है कि हर नेटवर्क क्या स्वीकार करता है (Instagram को मीडिया चाहिए, YouTube को वीडियो, Facebook पर मिक्सिंग नहीं)। शेड्यूलर कुछ भी क्यू में डालने से पहले इसे जाँचता है, और मना की गई पोस्ट कैलेंडर पर शेड्यूल्ड बनकर पड़ी रहने के बजाय कारण के साथ फ़ेल होकर वापस आती है।
4हर कॉल पर एक्सेस की जाँच
Postgres में रो-लेवल सिक्योरिटी, हर एज फ़ंक्शन में रोल की जाँच, और MCP एक्सेस PKCE वाले OAuth से, हर ब्रांड और हर एक्शन के हिसाब से सीमित, एक ही पेज से रद्द किया जा सकने वाला।
कुछ समय तक मेरा लोकल ऐप और लाइव ऐप एक ही प्रोडक्शन डेटाबेस शेयर करते थे, और एक बार डिप्लॉय से पहले चल गए एक माइग्रेशन ने लाइव Brand Kits पेज ख़ाली कर दिया। तब से बैकएंड का काम पहले एक Supabase ब्रांच पर होता है और उस कोड के साथ प्रोडक्शन में मर्ज होता है जिसे उसकी ज़रूरत है।
क्वालिटी और वर्कफ़्लो
140 टेस्ट फ़ाइलों में लगभग 1,000 टेस्ट केस ऐप, MCP सर्वर और एज फ़ंक्शन को कवर करते हैं। कुछ जाँचें इसलिए हैं क्योंकि कभी कुछ टूटा था: अगर 17 में से किसी भी भाषा में कोई की छूट जाए तो एक पैरिटी टेस्ट बिल्ड फ़ेल कर देता है, और MCP के डेटाबेस सूट सिंथेटिक डेटा पर चलते हैं और आख़िर में रोल बैक हो जाते हैं।
एजेंट के अपने इवैल हैं। एक इवैल लाइव एजेंट से किसी ब्रांड की परफ़ॉर्मेंस पर सवालों का एक तय सेट पूछता है, हर सवाल नई बातचीत में, और जाँचता है कि उसने सही अवधि के साथ Insights पढ़ा और उसके जवाब में वही आँकड़े हैं जो Insights पेज दिखाता है।
एक व्यक्ति ने AI एजेंट्स को एक टीम की तरह इस्तेमाल करके 520+ पुल रिक्वेस्ट शिप कीं। हर बदलाव को अपने git worktree में अपनी ब्रांच मिलती है, ताकि Claude Code और Codex एक-दूसरे के रास्ते में आए बिना कई काम एक साथ कर सकें। हर एक अपने टेस्ट और टाइप चेक चलाता है, एक छोटी पुल रिक्वेस्ट खोलता है, और मेरे पढ़ने से पहले कुछ भी मर्ज नहीं होता।
टेक्निकल चुनौतियाँ
हर एक इंटरफ़ेस का बग लगता था और निकला कुछ ज़्यादा गहरा: एक स्ट्रीम का ढाँचा, एक टाइमस्टैम्प, कोई नेटवर्क असल में क्या रिपोर्ट करता है, एक घड़ी।
जनरेशन को लाइव जैसा महसूस कराना · रियलटाइम
एक महीने की पोस्ट जनरेट करने में पहले एक स्पिनर घूमता था और फिर बारह पोस्ट एक साथ आ टपकती थीं। धीमा लगता था, लेकिन दिक़्क़त मॉडल में नहीं थी। दिक़्क़त ग्रैन्युलैरिटी में थी।
मैंने मॉडल का आउटपुट JSON Lines में बदला और उसे स्ट्रीम किया, जैसे ही किसी पोस्ट की लाइन पूरी होती, उसे इन्सर्ट कर दिया जाता। कैलेंडर Supabase Realtime से Postgres के बदलावों को सब्सक्राइब करता है और पहले प्लेसहोल्डर बनाता है, तो पोस्ट एक-एक करके ख़ुद टाइप होती दिखती हैं।
वही इंतज़ार अब ऐसा लगता है जैसे किसी को काम करते देख रहे हों।
दो टाइमस्टैम्प जो कभी मेल नहीं खाते थे · डेटा
Supabase ने चेतावनी दी कि डेटाबेस का डिस्क IO ख़त्म होने वाला है। रीड ठीक थे। कुछ था जो उन्हीं रो को बार-बार दोबारा लिख रहा था: 83k मैसेज स्टोर करने के लिए 344k इन्सर्ट।
इनबॉक्स सिंक सेव किए गए टाइमस्टैम्प की तुलना वापस पढ़े गए टाइमस्टैम्प से करता था। Postgres उसे +00:00 के रूप में लौटाता था और हम उसे Z के रूप में लिखते थे, तो हर बातचीत बदली हुई दिखती थी और हर स्वीप उसे फिर से डाउनलोड करता था। स्ट्रिंग की जगह समय के पल की तुलना करने से यह ठीक हो गया।
export function sameInstant(a: string | null | undefined, b: string | null | undefined): boolean {
if (a == null && b == null) return true;
if (a == null || b == null) return false;
if (a === b) return true;
const ta = Date.parse(a);
const tb = Date.parse(b);
return Number.isFinite(ta) && Number.isFinite(tb) && ta === tb;
}83k मैसेज स्टोर करने के लिए इन्सर्ट
344k→हर नए मैसेज पर एक
हर स्वीप में दोबारा पढ़ी गई बातचीत
सभी→सिर्फ़ बदली हुई
बेवजह की राइटिंग रुक गई, और जो इनबॉक्स हिस्ट्री कभी पूरी नहीं होती थी, वह पहली बार सिंक हुई।
हर ज़ीरो, ज़ीरो नहीं होता · एनालिटिक्स
हमारा एनालिटिक्स प्रोवाइडर हर नेटवर्क के लिए एक ही ढाँचा लौटाता है और जो कुछ नेटवर्क रिपोर्ट नहीं करता, उसे 0 से भर देता है। Instagram की हर पोस्ट पर ज़ीरो क्लिक “थे”। चार्ट बड़ी शराफ़त से झूठ बोल रहे थे।
हर प्लेटफ़ॉर्म के लिए एक मेट्रिक रजिस्ट्री जो दर्ज करती है कि हर नेटवर्क असल में क्या रिपोर्ट करता है, बाक़ी को इन्जेस्ट के समय null कर देती है, और हर चार्ट को किसी मेट्रिक को ईमानदारी से दिखाने, कम करने या छिपाने देती है।
आठ नेटवर्क पर इनसाइट्स, जो कभी ऐसा नंबर नहीं दिखातीं जिसे किसी ने नापा ही नहीं।
तेज़ घड़ी की वजह से लॉग आउट · ऑथ
मेरे को-फ़ाउंडर साइन इन करते ही लॉग आउट हो जाते थे: एक सेकंड में पंद्रह टोकन रिफ़्रेश, फिर रेट लिमिट। कोई और इसे दोहरा नहीं पा रहा था।
उनके कंप्यूटर की घड़ी एक घंटे से ज़्यादा आगे थी, तो हर नया टोकन एक्सपायर्ड दिखता था। मैंने सेशन स्टोरेज को रैप किया ताकि सेशन लिखते समय एक्सपायरी को लोकल घड़ी के हिसाब से फिर से तय किया जाए।
हर सेकंड टोकन रिफ़्रेश
15→0
साइन-इन किसी भी डिवाइस की घड़ी पर काम करता है, और घड़ी ग़लत हो तो कंसोल बता देता है।
सीख
सलीक़ा ही असली खाई है
जब AI बनाना सस्ता कर देता है, तो हर कोई शिप कर सकता है, और ज़्यादातर चीज़ें एक जैसी दिखती हैं। जो अब भी दुर्लभ है वह है परख: यह जानना कि क्या छोड़ना है, किसी स्क्रीन का एहसास कैसा होना चाहिए, कब एक एनिमेशन ज़रूरत से ज़्यादा है। दो लोगों की टीम के लिए जो किसी से ज़्यादा ख़र्च नहीं कर सकती, सलीक़ा ही वह चीज़ है जो Groselia को किसी बहुत बड़ी चीज़ जैसा दिखाती और चलाती है, और यही वह हिस्सा है जो मैं कभी किसी मॉडल को नहीं सौंपूँगा।
नतीजा बेचो, टूल नहीं
कोई भी मार्केटिंग सॉफ़्टवेयर चलाना नहीं चाहता था, चाहे वह कितना भी अच्छा हो। वे दिखना चाहते थे। ऐप की जगह काम बेचने से प्रोडक्ट की अहमियत कम नहीं, बल्कि बढ़ गई: वह इंजन बन गया जिसे हम हर दिन चलाते हैं, तो हर खुरदुरा किनारा ठीक हो गया।
कॉन्टेक्स्ट, चालाकी से बेहतर
एजेंट तब बेहतर हुआ जब उसे ज़्यादा पता था, तब नहीं जब प्रॉम्प्ट ज़्यादा चतुर हुआ। हर टर्न में उसे लाइव कैलेंडर, मेमोरी और खुले प्लान देना, और काम करने से पहले पूछने को कहना, किसी भी मॉडल अपग्रेड से ज़्यादा कारगर रहा।
AI टीम का आकार बदल देता है
जब एजेंट ज़्यादातर कोड साथ-साथ लिखते हैं, तो मेरा काम बन गया तय करना कि क्या बनाना है, हर बदलाव रिव्यू करना और स्तर ऊँचा रखना। एक व्यक्ति अब वह चला सकता है जिसके लिए पहले पूरी टीम लगती थी, बशर्ते वह व्यक्ति एडिटर बना रहे।


