1 पॉइंट द्वारा GN⁺ 2025-08-08 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • पुराने टिप्पणी सिस्टम (Disqus, सेल्फ-होस्टेड, GitHub Issues आदि) को हमने स्पीड, ट्रैकिंग, मेंटेनेंस ओवरहेड और यूज़र लिमिट जैसी समस्याओं की वजह से इस्तेमाल नहीं किया
  • Bluesky में इन्फ्रास्ट्रक्चर मेंटेन करने की जरूरत नहीं, रिच कंटेंट सपोर्ट, रियल-नेम आधारित अकाउंट, क्रॉस-प्लेटफॉर्म चैट संभव होने के कारण यह ब्लॉग टिप्पणियों के लिए उपयुक्त है
  • इम्प्लीमेंटेशन की प्रक्रिया: ब्लॉग पोस्ट प्रकाशित करें → Bluesky पर शेयर करें → पोस्ट के AT URI को ब्लॉग पोस्ट के metadata में जोड़ें → उसी पोस्ट का टिप्पणी थ्रेड लाकर दिखाएं
  • टिप्पणियों के लिए तीन प्रकार के कंपोनेंट रखे: सभी टिप्पणियाँ दिखाने वाला, individual टिप्पणी + रेस्पॉन्स दिखाने वाला, image/link आदि embed को हैंडल करने वाला
  • recursive तरीके से अधिकतम 5-लेवल रेस्पॉन्स दिखाए जाते हैं, साथ में image grid, modal, लिंक कार्ड; असपोर्टेड embed के लिए fallback टेक्स्ट दिखाया जाता है
  • Astro + React इंटीग्रेशन, client:load के साथ क्लाइंट साइड पर लोडिंग, frontmatter में DID और postCid जोड़ने से टिप्पणी सक्षम हो जाती है
  • टाइप सुरक्षा के लिए @atcute/client TypeScript टाइप का उपयोग, JavaScript डिसेबल होने पर भी बॉडी कंटेंट सही से दिखाने वाली प्रोग्रेसिव एन्हांसमेंट स्ट्रक्चर
  • बिना server और DB के, Bluesky API और CDN का उपयोग करके performance बेहतर रखा
  • यह तरीका social फीचर्स को प्रत्येक साइट पर फिर से बनाने के बजाय, यूज़र के पहले से उपयोग किए जा रहे प्लेटफ़ॉर्म से कनेक्ट करके scalability और independence देता है

Bluesky को टिप्पणी सिस्टम के रूप में चुनने के कारण

  • इन्फ्रास्ट्रक्चर मेंटेन करने की जरूरत नहीं
  • image/link/quote पोस्ट जैसे rich कंटेंट का सपोर्ट
  • Bluesky अकाउंट आधारित भरोसेमंद और जिम्मेदार व्यवहार
  • ब्लॉग और social media के बीच traffic का आपस में आदान-प्रदान
  • कंटेंट ownership अलग-अलग: ब्लॉग पोस्ट आपका, टिप्पणियाँ संबंधित लेखक की

AT Protocol को समझना

  • DID: Decentralized user identifier
  • CID: Content identifier
  • AT URI: at://did:.../app.bsky.feed.post/... फॉर्मेट वाला पता
  • getPostThread API call से टिप्पणी थ्रेड ला सकते हैं, authentication की जरूरत नहीं

कंपोनेंट स्ट्रक्चर

  • मुख्य टिप्पणी कंपोनेंट
  • individual टिप्पणी + नेस्टेड टिप्पणी render करने वाला कंपोनेंट
  • image/link आदि embed संभालने वाला कंपोनेंट

नेस्टेड टिप्पणी हैंडलिंग

  • recursive rendering, अधिकतम depth 5 की सीमा
  • hierarchy दिखाने के लिए visual indentation

रिच कंटेंट हैंडलिंग

  • image: CDN सपोर्ट, multi-image grid और modal view
  • external link: thumbnail और description वाला card render
  • अन्य embeds: fallback टेक्स्ट प्रदर्शित

Astro इंटीग्रेशन

  • React कंपोनेंट + client:load का उपयोग
  • frontmatter में Bluesky DID, postCid जोड़ने पर टिप्पणियाँ सक्षम हो जाती हैं

डेवलपमेंट एक्सपीरियंस

  • TypeScript टाइप सपोर्ट से stability बेहतर हुई
  • Progressive Enhancement के कारण API issue होने पर भी पोस्ट body पर कोई असर नहीं
  • बिना server/DB load के Bluesky infra का उपयोग

निष्कर्ष

  • पुराने टिप्पणी सिस्टम की समस्याओं से बचकर, यूज़र के पहले से मौजूद प्लेटफ़ॉर्म से connect करते हैं
  • Bluesky के साथ grow होने पर भागीदारी बढ़ने की संभावना
  • ATProto आधारित होने से अन्य AppView या custom implementation पर migrate करना आसान

1 टिप्पणियां

 
GN⁺ 2025-08-08
Hacker News टिप्पणी
  • मुझे यह देखना अच्छा लगेगा कि Bluesky आगे चलकर monetization कैसे करेगा; तकनीकी स्ट्रक्चर चाहे कितना भी जटिल क्यों न लगे, अगर कहीं न कहीं पेमेंट मॉडल पर शिफ्ट होना है तो तरीका क्या होगा, यह जानने की उत्सुकता है।

  • पोस्ट दिलचस्प लगी। मुझे निजी तौर पर यह पढ़ना पसंद है कि लोग स्वतंत्र रूप से वेबसाइट बनाकर कैसे चलाते हैं। पोस्ट में टिप्पणी सिस्टम की समस्याएँ और चार विकल्प बताए गए हैं, लेकिन मैं भी एक पाँचवाँ तरीका कामयाब रहा, यह जोड़ना चाहता हूँ।
    कई third-party comment systems इस्तेमाल करने के बाद मैं अभी form.lisp वाला एक सरल comment सिस्टम खुद बना कर चला रहा हूँ। हर टिप्पणी एक text file में सेव होती है, इसलिए spam, XSS या निरर्थक टिप्पणियों का डर नहीं रहता; हर वीकेंड मैं मैन्युअल रूप से चेक करके ब्लॉग में जोड़ देता हूँ।
    टिप्पणियाँ सामान्य HTML files में सेव होती हैं, और static site generator (site.lisp) पोस्ट के साथ comment page भी बना देता है (टिप्पणी उदाहरण), यानी यह मूलतः एक static comment generator की तरह काम करता है।
    पोस्ट में बताई गई पाँच सुविधाओं (अलग इंफ्रास्ट्रक्चर की जरूरत नहीं, rich content, real name आदि) में यह पूरी तरह नहीं बैठता, लेकिन मेरे लिए यह ठीक रहा और मैं इसे चार साल से ज़्यादा समय से संतोषजनक तरीके से चला रहा हूँ।

    • ईमेल फॉर्म आदि से टिप्पणियाँ लेकर उन्हें एडमिन के तौर पर सीधे पोस्ट के नीचे जोड़ना भी बुरा नहीं लगता।
    • मेरा तरीका लो-ट्रैफिक ब्लॉग के लिए भी अच्छा लगता है, लेकिन मुझे निजी तौर पर अपने साइट पर दूसरों की आवाज़ आना थोड़ा अजीब लगता है, इसलिए मैंने टिप्पणियाँ हटाकर ब्लॉग को केवल अपनी अभिव्यक्ति का स्थान बना दिया है; हाँ, जो ब्लॉगर प्रेरित करें उन्हें ईमेल feedback छोड़ना बेहतर लगता है।
    • कुछ हद तक यह अख़बार में ‘रीडर्स सेलेक्शन’ लेने जैसा लगता है।
  • मेरी recommendation cactus.chat है। यह Matrix based है और guest support देता है, इसलिए अलग Matrix account होने की ज़रूरत नहीं। अपना account उपयोग करूँ तो हर पोस्ट के लिए एक Matrix room में शामिल होने जैसा काम होता है।

  • Bluesky पहले से मौजूद user-account model की वजह से data store करने में बहुत काम का लगा; अभी मैं ओपन-सोर्स web map cartes.app में Bluesky based review system बना रहा हूँ।
    यह आसान नहीं है क्योंकि lexicon बनाना और Bluesky stream के हिसाब से DB manage करनी पड़ती है।

    • सच में, बिना DB के भी काफी हद तक काम चल जाता है; मैंने बनाया था scrapboard.org में केवल getRecord API (दस्तावेज़ से) client-side data काफी हद तक देखा जा सकता था।
    • mangrove.reviews को use करने की सलाह है। वहाँ का license स्पष्ट रूप से CC-BY-SA है, और MapComplete.org भी use हो रहा है। Bluesky में भी किसी दिन issue हो सकता है।
  • मैं Bluesky के revenue model की long-term sustainability पर संदेह में हूँ; अभी जो मुफ्त में उपलब्ध है वह सच में VC (Venture Capital) फंडिंग की वजह से संभव है।
    इसलिए अपनाने में मैं सावधान हूँ, और लगता है करीब भविष्य में शायद API बंद हो जाए या comment system ही खराब हो जाए।

    • Bluesky आर्किटेक्चर में यूज़र के Personal Data Server (PDS) के नीचे चलता है; कोई भी PDS बदल सकता है और official Bluesky app server सिर्फ aggregation करता है।
      तीसरे पक्ष के app server, app view आदि से भी वही data access संभव है, इसलिए official API पर निर्भर रहने की ज़रूरत नहीं; कई मायनों में ecosystem ज्यादा खुला है।
    • मैं POSSE कॉन्सेप्ट पर काफी भरोसा करता हूँ। “enshittification cycle” का एक पॉज़िटिव एंगल यह है कि कुछ समय के लिए बढ़िया online community experience मिल सकता है, फिर कहीं और shift हो जाना भी संभव है। जैसे पुराने अच्छे क्लब एक दिन गायब हो जाते हैं, वैसे ही यहाँ भी ज्यादा आसक्ति रखना ठीक नहीं लगता। मेरा एक Mastodon लिंक भी है जहाँ मैंने अपना सोच रखा है: सैद्धांतिक विवरण
    • Bluesky जब monetize करेगा तो करना ही पड़ेगा, लेकिन AI या अन्य services भी आखिर में इसी तरह VC फंड पर ही चलती हैं; Twitter, Uber, Doordash जैसी सेवाओं का भी यही हुआ। Twitter की तरह माहौल दूषित हो सकता है, फिर भी जब तक VC नए अमीरी के सपने में पैसा डालते हैं, उस ‘समृद्ध’ दौर का मज़ा लेना भी एक हद तक रोचक है।
  • Bluesky ecosystem वाकई शानदार लगता है; पहले भी मैंने इस तरीके का एक example देखा था।
    थोड़ा अफ़सोस यह है कि हर webpage के लिए Bluesky पर अलग पोस्ट डालना पड़ता है तभी comment system काम करता है; अगर webcomponent जैसी चीज़ मिल जाए तो बेहतर होगा।

  • पोस्ट में लिखा कि “कई सालों से मैं सही comment system नहीं लगा पाया”, जबकि पूरे ब्लॉग में 2025 के सिर्फ दो posts दिखते हैं (जिसमें से एक यह पोस्ट है)।

    • पहले शायद दूसरा ब्लॉग रहा होगा; archive.org पर मैंने ऐसा देखा था।
  • सोशल मीडिया फ़ीड को सीधे ओपन किए बिना भी social interaction का तरीका दिलचस्प है।
    अगर इसे अपने ब्लॉग पर लगा दूँ और लोग सीधे टिप्पणियाँ छोड़ें, जबकि मैं सिर्फ इसी इंटरफेस से Bluesky व अन्य socials से interact करूँ, तो मेरे लिए बढ़िया रहेगा।
    जब फ़ीड खुलता है तो अक्सर doomscrolling या वेस्ट ऑफ टाइम में चला जाता है; इस तरीके से शायद उसी खराब cycle से बचे रहते हुए social media से जुड़ने का नया रास्ता दिखता है।

    • “फ़ीड खोलो तो बस बेकार की चीज़ें ही दिखती रहती हैं” वाली बात से मैं सहमत हूँ, बस यही शक भी होता है कि शायद यही इसकी original design goal नहीं था।
  • मेरे हिसाब से Bluesky ने इंटरनेट में एक बार फिर genuinely fresh ideas के निकलने का माहौल बना दिया है।

    • सच कहूँ तो शायद इसे Threads के साथ अधिक खुली integration options जोड़ देने जैसा ही कहा जा सकता है; शायद “open innovation” शब्द ATProto पर ज्यादा फिट बैठता है।
    • मैं किसी अकेली कंपनी या एक ही यूज़र समूह पर ही focus नहीं करना चाहता, पर अभी Bluesky community मज़ेदार है। पहले मैं Twitter का fan था, और अभी भी लगता है Bluesky के मुख्य उपयोगकर्ताओं में वही लोग अधिक हैं; आगे क्या होगा, यह देखना बाकी है।
    • मैं “platform नहीं, protocol” वाले slogan में यकीन रखता हूँ। “build mode” शब्द भी आता है, लेकिन मतलब यही है कि कुछ ऐसा बनाना जो आसानी से किसी के कब्ज़े में न जाए और misuse करना मुश्किल हो।
    • अगर Bluesky की moderation टीम या किसी user group को उकसाओ और किसी group द्वारा report कर दी जाए तो account तुरंत ban हो सकता है; या पहले से shared blacklist में नाम आ जाए तो कुछ बोले बिना ही ग़ायब हो सकते हो।
      मूल रूप से यह प्रयास मुझे पुराने Twitter से भी ज्यादा कठोर माहौल दोबारा बनाने जैसा लगता है, कुछ-कुछ हाई स्कूल के कैंटीन वाली immature power politics की तरह।
  • मैं ब्लॉग खुद host नहीं कर रहा, इसलिए end में भी कुछ हद तक Bluesky पर ही टिक रहा हूँ।
    Platform lock-in नहीं है यह कहते हैं, पर अगर कल Bluesky मेरा account block कर दे या कंपनी ही बंद हो जाए तो आगे क्या?
    AT compatible प्रोडक्ट पर shift शायद संभव हो, मगर डर है कि बहुत सारा data खो न जाए।

    • इस topic में रुचि हो तो https://whtwnd.com/bnewbold.net पर Bluesky और AT Proto पर आधारित direct relay network बनाना, data migration आदि पर practical info और tools अच्छे से दिए हैं; यहाँ data migration, portability, alternate relay network support में कई प्रगति दिख रही है। संबंधित लिंक भी देख सकते हैं।
      (नोट: उस ब्लॉग के लेखक Bluesky कर्मचारी हैं; मैं अलग हूँ।)
    • अपना personal data आप IPFS पर CAR file (tarball जैसा) के रूप में backup कर सकते हैं; बाद में account के did:plc doc या DNS रिकॉर्ड से किसी भी PDS पर restore संभव है।
      अगर current PDS गिर जाए या block हो जाए तो तुरंत दूसरे server पर जा सकते हैं।
      relay (gossip nodes), PDS, client, app view (Bluesky web app backend) आदि के अलग-अलग ओपन-सोर्स implementations और hosting providers मौजूद हैं।
      अगर Bluesky कल बंद भी हो जाए तो आप आसान तरीके से self-host कर सकते हैं या किसी अन्य provider (जैसे zeppelin.social) की मदद से existing app आगे चला सकते हैं।
      PLC directory अभी भी Bluesky के पास है, पर इसे स्वतंत्र foundation को shift किया जा रहा है और जरूरी हो तो replicate करना आसान है; did:web mode में सिर्फ DNS पर depend करना पड़ता है, इसलिए independence ज्यादा है।
    • बाकी, Bluesky स्पष्ट रूप से libertarian (libertarian/राइट विंग) users को actively बाहर कर रहा है; left या राजनीतिक neutral users के लिए माहौल ठीक-ठाक लगता है।