प्रत्येक सोडलेले रिपॉझिटरी एकेकाळी रात्री २ ची एक वेड/ध्यास असते. तुम्हाला तो ताल माहित आहे. मध्यरात्री एखादी कल्पना सुचते. तुमचा कॉफीचा कप थंड होण्यापूर्वीच तुम्ही रिपॉझिटरीचा पाया रचता (scaffold करता). अकरा दिवस तुम्ही अशा वेड्यासारख्या उत्साहाने कोड पुश करता जणू काही तुम्ही अखेर एखादी मोठी गोष्ट शोधून काढली आहे. मग तो स्प्रिंट संपतो. किंवा काहीतरी बिघडते. किंवा तुम्ही फक्त मंगळवारी संध्याकाळी तो कोड उघडता आणि तो विचार/धागा सुटलेला असतो.

बहुतेक डेव्हलपर्स हे ओझे वाहतात. हे पूर्णपणे पश्चात्ताप नाही, तर 'असे झाले असते तर' या विचारांची एक शांत यादी आहे. तुमचे GitHub प्रोफाइल चांगल्या हेतूंचा एक संग्रह बनून जाते. Side Project Cemetery च्या निर्मात्याने या समस्येला थेट तोंड देणारी गोष्ट बनवली आहे. त्यांचे टूल तुमच्या सार्वजनिक प्रोफाइलचे एका चांदण्या रात्रीच्या स्मशानात रूपांतर करते, जिथे प्रत्येक कालबाह्य (stale) रिपॉझिटरीला एक शिलालेख, मृत्यूची तारीख आणि कधीकधी एक विनोदी शेवट (punchline) मिळतो.

स्मशान वाढत जाते

साध्या कारणांमुळे साईड प्रोजेक्ट्स मरतात. तुम्हाला एखादे नवीन फ्रेमवर्क शिकायचे होते, म्हणून तुम्ही एक CLI टूल बनवले. तुम्हाला एखादी स्प्रेडशीट ऑटोमेट करायची होती, म्हणून तुम्ही एक Python wrapper लिहिला. तो प्रोटोटाइप तुमची समस्या सोडवण्यासाठी पुरेसा होता आणि तिथेच त्याचा शेवट झाला. तिथे वाट पाहणारा कोणताही वापरकर्ता नव्हता, कोणतीही डेडलाईन ओरडत नव्हती, किंवा मॅनेजरने स्टेटस अपडेट विचारले नव्हते. बाह्य दबावाशिवाय, केवळ प्रेरणेला (motivation) पूर्ण भार पेलवावा लागतो. जेव्हा प्रेरणा कमी होते, तेव्हा प्रकल्प थांबतो.

एखाद्या सामान्य डेव्हलपरचे GitHub पाहिले तर तुम्हाला ही पद्धत दिसेल. एका रिपॉझिटरीसाठी गंजलेल्या रंगाचा कॉन्ट्रिब्युशन ग्राफ. "TODO: write tests" असा शेवट होणारा README. सहा महिन्यांपूर्वीच संपलेला कमिट इतिहास. आपण या रिपॉझिटरीजकडे लाजवणाऱ्या आठवणींसारखे पाहतो. आपण त्यांच्याकडे वेगाने दुर्लक्ष करतो, जणू काही अपूर्ण कोड ही लपवण्यासारखी गोष्ट आहे. Side Project Cemetery याच्या अगदी उलट भूमिका घेते. ते म्हणते: त्यांना व्यवस्थित दफन करा. त्यांना मान्यता द्या. आणि नंतर, जर तुम्हाला वाटत असेल, तर त्यातील एखादा पुन्हा जिवंत करा.

स्मशान कसे कार्य करते

याचे इंटरफेस थेट आणि साधे आहे. तुम्ही कोणतेही GitHub युजरनेम टाइप करता. हे ॲप GitHub REST API कडून माहिती मिळवते, सर्व सार्वजनिक रिपॉझिटरीज शोधते आणि गेल्या १८० दिवसांत कोणताही 'push' न झालेल्या रिपॉझिटरीज फिल्टर करते. प्रत्येक रिपॉझिटरी एक थडगे बनते. तुम्हाला त्याचा जन्म वर्ष, मृत्यू वर्ष आणि रिपॉझिटरीच्या तपशिलावरून तयार केलेला शिलालेख दिसतो.

काही शिलालेख सौम्य असतात:

  • JavaScript मध्ये लिहिलेले. 'callback exhaustion' मुळे मृत्यू.

इतर काही इतिहासाचे अधिक उदार वर्णन करतात:

  • मृत नाही. फक्त २०२५ पासून अत्यंत आक्रमकपणे 'on hold' आहे.

जर तुम्हाला अधिक वैयक्तिक स्पर्श हवा असेल, तर तुम्ही पर्यायी Gemini integration सुरू करू शकता. AI रिपॉझिटरीची भाषा आणि संदर्भ वाचून सानुकूल शिलालेख तयार करते जे केवळ साचेबद्ध न वाटता विशिष्ट वाटतात. तसेच एक पर्यायी ElevenLabs integration देखील आहे जे श्रद्धांजली मोठ्याने वाचते, जे ऐकेपर्यंत एक गमतीशीर गोष्ट वाटते, पण जेव्हा तुम्ही तुमच्या स्वतःच्या सोडलेल्या API wrapper चे वर्णन एखाद्या गंभीर कथावाचकाच्या आवाजात ऐकता, तेव्हा ते वेगळेच वाटते. त्या क्षणी, हास्यास्पदपणामुळे अपराधीपणाची भावना दूर होते, आणि तो अपराधीपणाच रिपॉझिटरी दडपून ठेवण्यासाठी कारणीभूत होता.

Rekindle: गोंधळातून बाहेर पडण्यासाठी एक बटण

स्मशान हे केवळ अर्धे उद्दिष्ट आहे. खरे वैशिष्ट्य प्रत्येक शिलालेखाच्या खाली दडलेले आहे: एक Rekindle बटण. त्यावर क्लिक केल्यावर, ॲप तुमचा README वाचते. प्रकल्पाच्या उद्देशाबद्दल तुम्ही जे काही लिहिले आहे ते ते समजून घेते, त्याची सध्याच्या कोडशी तुलना करते आणि तुम्हाला तुम्ही तो प्रकल्प का सुरू केला होता याची आठवण करून देण्यासाठी एक छोटा सारांश (pitch) लिहिते. त्यानंतर ते आज रात्री तुम्ही करू शकणाऱ्या एका लहान, ठोस कृतीने संपते. कोणताही रोडमॅप नाही. कोणताही रिफॅक्टर (refactor) प्लॅन नाही. फक्त एक काम. पाच मिनिटांचे काम.

हे महत्त्वाचे आहे कारण जुन्या प्रकल्पाकडे परत जाण्याचा सर्वात कठीण भाग कोडिंग करणे हा नाही. तर तुम्ही कुठे थांबला होतात हे आठवणे आणि थांबल्याबद्दल स्वतःला माफ करणे हा आहे. एखादा खूप जुना प्रकल्प खूप मोठा वाटतो. तुम्हाला वाटते की त्याची आर्किटेक्चर पुन्हा समजून घेण्यासाठी तुम्हाला तीन तास लागतील. Rekindle बटण त्या समजाला एका छोट्या 'todo' मध्ये रूपांतरित करते. ध्येय असे आहे की तुमचा पुढचा कमिट पाच मिनिटांच्या अंतरावर वाटला जावा, कारण एकदा का इतिहासात एक छोटा बदल (diff) झाला की, कामाचा वेग (momentum) पुन्हा प्राप्त होतो.

स्टॅक इतका साधा का ठेवावा

तांत्रिकदृष्ट्या, हा प्रकल्प स्वतःच्या तत्त्वांचे पालन करतो. हे साधे (vanilla) HTML, CSS आणि JavaScript वापरून बनवले आहे. ते GitHub REST API वापरते. यामध्ये कोणतेही सर्व्हर नाहीत, कोणतेही बिल्ड स्टेप्स नाहीत किंवा देखभालीसाठी दर महिन्याला बदलणारे कोणतेही फ्रेमवर्क नाही. तुम्ही ते GitHub Pages वर होस्ट करू शकता आणि सोडून देऊ शकता.

तो मिनिमलिझम (minimalism) हा एक वैशिष्ट्य आहे, आळस नाही. जुना कोड पुनरुज्जीवित करण्याच्या टूलवर स्वतःचे नाजूक डिपेंडन्सी ट्री (dependency tree) अवलंबून नसावे. जर निर्मात्याने Side Project Cemetery सहा महिन्यांसाठी सोडले, तरी हे स्मशान स्वतःच्या स्मशानातील आणखी एक रहिवासी बनणार नाही. कोड वाचनीय राहतो. अपडेट करण्यासाठी कोणतेही webpack कॉन्फिग्स नाहीत, पॅच करण्यासाठी कोणतेही Docker इमेजेस नाहीत. हे टूल्सच्या वापरामध्ये संयम ठेवण्याचा एक शांत युक्तिवाद आहे: कधीकधी एक स्टॅटिक साइट आणि एक API की पुरेशी असते.

जेव्हा हे बटण खरोखर काम करते

निर्मात्याने कबूल केले आहे की, विकास प्रक्रियेदरम्यान त्यांच्या स्वतःच्या बंद पडलेल्या प्रकल्पांनी त्यांना पुन्हा साद घातली. त्यापैकी एक प्रकल्प म्हणजे एका रात्रीचा वेड होता, जो केवळ उत्साहाच्या भरात लिहिला गेला आणि नंतर विसरला गेला. त्यांनी त्यावर 'Rekindle' बटण वापरले. ॲपने README वाचले, मूळ संकल्पना लक्षात ठेवली आणि पूर्ण करण्यासाठी एक प्रत्यक्ष काम दिले. ते यशस्वी ठरले. त्यांनी त्याच आठवड्यात तो अपूर्ण भाग पूर्ण करून प्रसिद्ध केला.

हे या टूलचे मुख्य वैशिष्ट्य आहे. आवड किंवा उत्कटता मरत नाही, ती फक्त थोड्या विश्रांतीवर असते. बहुतेक सोडून दिलेले रिपॉझिटरीज (repositories) हे इंजिनीअरिंगचे अपयश नसून संदर्भाचे (context) अपयश आहेत. तुम्ही त्या विषयाचा धागा गमावला कारण तो धागा फक्त तुमच्या डोक्यात होता आणि तुमचे मन इतर गोष्टींकडे वळले होते. Side Project Cemetery तो संदर्भ बाह्य स्वरूपात उपलब्ध करून देते. ते README वाचते जेणेकरून तुम्हाला तुमच्या भूतकाळातील विचारांची पुन्हा शून्यापासून बांधणी करावी लागणार नाही.

खरा निकष हा नाही की तुम्ही किती रिपॉझिटरीज पुनरुज्जीवित करता, तर तो हा आहे की तुम्ही किती प्रकल्पांबद्दल अपराधी किंवा विचित्र वाटणे थांबवता. हे स्मशान (cemetery) त्यांना तुम्ही तयार होईपर्यंत विश्रांतीसाठी जागा देते. आणि जेव्हा तुम्ही तयार असता, तेव्हा ते तुम्हाला एक फावडे आणि एकच सूचना देते: इथून सुरुवात करा.

तुमच्या कल्पना गाडल्या जाऊ देऊ नका.

https://pyaroslav.github.io/side-project-cemetery/ वर जाऊन Side Project Cemetery ला भेट द्या, आणि Dev.to वरील पूर्ण कथा येथे वाचा.