कोडिंग असिस्टेंस टूल्स के साथ उन प्रोजेक्ट्स को फिर ज़िंदा करना जो कभी पूरे नहीं हो पाते
(blog.matthewbrunelle.com)- पुराने पर्सनल प्रोजेक्ट्स का फोकस कुछ नया सीखने से ज़्यादा इम्प्लीमेंटेशन पूरा करने पर होता है, इसलिए वे कोडिंग असिस्टेंस टूल्स को आज़माने के लिए अच्छे साबित हुए
- YouTube Music को OpenSubsonic API के ज़रिए एक्सपोज़ करने वाला shim फिर से इम्प्लीमेंट किया गया, ताकि अलग-अलग Subsonic क्लाइंट एक ही तरीके से कनेक्ट हो सकें
- पहले न्यूनतम स्ट्रक्चर और इम्प्लीमेंटेशन कन्वेंशन तय किए गए, फिर छोटे-छोटे iteration cycles में काम करते हुए OpenAPI spec आधारित stub generation और असली क्लाइंट कनेक्शन टेस्ट साथ-साथ चलाए गए
- सिर्फ spec के हिसाब से बनाया गया शुरुआती इम्प्लीमेंटेशन असली कनेक्शन में तुरंत टूट गया, और request logs देखने व unit tests जोड़ने की प्रक्रिया दोहराते हुए इसे search और playback चलने लायक स्तर तक लाया गया
- अगर यह सीखने के लिए stretch project नहीं बल्कि वह प्रोजेक्ट है जो बस होना चाहिए, तो कोडिंग असिस्टेंस टूल्स टाले हुए काम को सच में इस्तेमाल होने वाली service में बदलने में बहुत मदद करते हैं
प्रोजेक्ट की पृष्ठभूमि और अप्रोच
- बहुत पहले शुरू होकर अधूरे रह गए पर्सनल प्रोजेक्ट्स AI कोडिंग असिस्टेंस टूल्स को परखने के लिए उपयुक्त थे
- जिसे फिर से ज़िंदा किया गया, वह YouTube Music और OpenSubsonic API के बीच का एक shim था
- OpenSubsonic का उपयोग एक ऐसे API contract के रूप में किया गया, जो music streaming क्लाइंट और सर्वर को अलग रखने देता है
- सर्वर के लिए Navidrome, डेस्कटॉप क्लाइंट के लिए Feishin, और Android पर Symfonium इस्तेमाल किए गए
- यह shim YouTube Music को OpenSubsonic API के अनुसार एक्सपोज़ करता है, ताकि कोई भी क्लाइंट उससे जुड़ सके
- metadata lookup के लिए
ytmusicapiऔर streaming के लिएyt-dlpको प्रोग्रामेटिक तरीके से कॉल किया गया - बेसिक streaming को जोड़ना अपेक्षाकृत आसान था, लेकिन spec के मुताबिक सारे endpoints इम्प्लीमेंट करने का लंबा tail work बाकी था
- metadata lookup के लिए
- यह प्रोजेक्ट किसी नए या मौलिक समस्या से ज़्यादा स्पष्ट spec इम्प्लीमेंटेशन पर आधारित था, इसलिए यह कोडिंग असिस्टेंस टूल्स के साथ अच्छी तरह फिट बैठा
- इसे Claude Code और Opus 4.6 के साथ शुरुआत से फिर से बनाने के प्रयोग के रूप में चलाया गया
शुरुआती सेटअप
- शुरुआत एक पहले से सीमित न्यूनतम प्रोजेक्ट स्ट्रक्चर से हुई
uvप्रोजेक्ट बनाया गया औरfastapi,pydantic,ytmusicapi,yt-dlpको dependencies में जोड़ा गयाmain.pyको FastAPI example main file से बदला गया और OpenSubsonic OpenAPI spec को फ़ोल्डर में रखा गया- README में सर्वर की भूमिका, इस्तेमाल की गई लाइब्रेरी, documentation URL, और
openapi.jsonकी लोकेशन संक्षेप में लिखी गई - एक खाली TODO file जोड़ी गई और
/initसेCLAUDE.mdबनाया गया
CLAUDE.mdमें इम्प्लीमेंटेशन कन्वेंशन अलग से लिख दिए गए, ताकि बार-बार निर्देश देने की ज़रूरत कम हो- method arguments और return values पर type annotations और docstring अनिवार्य किए गए
- data modeling को Pydantic V2 conventions के अनुसार रखा गया
- docstring में Google style के args और returns sections मांगे गए
- tests को top-level functions,
assert, और fixtures वाले आधुनिक pytest style के अनुसार रखा गया
- इस शुरुआती बिंदु को git repository के रूप में बांधकर रखा गया
MVP इम्प्लीमेंटेशन का फ्लो
- काम करने का तरीका planning mode और छोटे iteration cycles पर आधारित था
- अगले काम को prompt के रूप में दिया जाता और शुरुआती योजना में छूटे हुए बिंदु या समस्याएँ देखी जातीं
- अगर दिशा भटकती, तो संबंधित resource links दिए जाते, या कई विकल्प होने पर search tool से अधिक idiomatic तरीका ढूँढने को कहा जाता
- हर काम के बाद
"Accept and clear context"का उपयोग करके context साफ किया जाता और फिर अगला चक्र शुरू होता
- पहला इम्प्लीमेंटेशन OpenAPI spec से सिर्फ नए JSON endpoints के stub बनाने पर केंद्रित था
- पुराने XML endpoints और नए JSON endpoints दोनों मौजूद थे, लेकिन दायरा सिर्फ नए हिस्से तक सीमित रखा गया
- इम्प्लीमेंटेशन के बाद यह दोबारा जाँचा गया कि सभी methods सही हैं या नहीं
- spec होने के बावजूद पहली कोशिश में गलतियाँ हुईं, और दूसरी जाँच में ज़्यादातर पकड़ ली गईं
- बड़े बदलावों के बाद
/initफिर से चलाकरCLAUDE.mdको नई स्थिति के अनुसार अपडेट किया गया - अगला चरण search और streaming चलाने वाली न्यूनतम functionality को परिभाषित कर जोड़ना था
- लक्ष्य था Subsonic क्लाइंट को जोड़कर गाने खोजना और चलाना संभव बनाना
- search के लिए
ytmusicapiऔर streaming के लिएyt-dlpइस्तेमाल किया गया
असली कनेक्शन में सामने आई समस्याएँ और सुधार
- ऊपर से देखने पर इम्प्लीमेंटेशन जल्दी विश्वसनीय लगने लगा, लेकिन Feishin से जोड़ते ही वह तुरंत बिखर गया
- क्लाइंट को सीधे टेस्ट किया गया और सर्वर request logs Claude Code को देकर बार-बार सुधार किया गया
- कुछ बारीक अंतर ऐसे थे जो सिर्फ spec से सामने नहीं आते थे; उदाहरण के लिए endpoint के
.viewsuffix को हटाना पड़ता था
- हर error पर regression रोकने के लिए नए unit tests जोड़े गए
- कुछ ही iterations के बाद Feishin में वास्तव में audio playback शुरू हो गया
- मुख्य समस्या यह थी कि stub endpoints कुछ भी return नहीं कर रहे थे
- ज़्यादातर endpoints को बदलकर ऐसा किया गया कि वे खाली होने पर भी स्ट्रक्चर के अनुसार valid response लौटाएँ
- फिर भी इस स्तर का MVP पुराने POC से बहुत अलग नहीं था, और असली usability बाद के लंबे tail work पर निर्भर थी
लंबा tail work और पूरी functionality का विस्तार
- OpenSubsonic documentation के अनुसार API के लगभग 80 endpoints 15 categories में फैले थे
- MVP के लिए ज़रूरी दायरा अपेक्षाकृत छोटा था
getLicense,getUser,getGenres,getMusicDirectoriesखाली लेकिन valid collections लौटाते थेgetSongको query parameter के ID को ज्यों का त्यों लौटाकर और default values भरकर pass-through की तरह संभाला गयाsearch3को एक सरलytmusicapiकॉल से इम्प्लीमेंट किया गयाstreamमेंasyncio.to_threadसे लिपटीyt-dlpकॉल के ज़रिए"bestaudio"format URL निकाला गयाgetCoverArtमेंyt-dlpसे cover image URL निकाला गया
- लेकिन पूरी Subsonic क्लाइंट functionality को सपोर्ट करने के लिए अतिरिक्त काम की ज़रूरत थी
ytmusicapicalls में usage limits से बचने के लिए एक साधारण in-memory cache जोड़ी गई- music metadata स्टोर करने के लिए
sqliteइस्तेमाल किया गया और browsing category के सभी endpoints इम्प्लीमेंट किए गए getTopSongsको भी top songs list query करके संभाला गया
- streaming के दौरान गानों को डिस्क पर सेव किया गया, ताकि दोबारा डाउनलोड से बचा जा सके
- अगर क्लाइंट डाउनलोड पूरा होने से पहले stream endpoint का कनेक्शन काट देता, तो अधूरी files को साफ करने की अतिरिक्त handling चाहिए होती
- यह सब काम मूल रूप से हाथ से भी किए जा सकते थे, लेकिन कभी पूरे नहीं हुए थे; और deployment की योजना न होने के कारण authentication जैसे कठिन हिस्से अब भी छोड़ दिए गए
- अंततः कम शाम के समय में ऐसा काम करने वाला service तैयार हो गया जिससे Subsonic क्लाइंट कनेक्ट हो सके, और प्रोजेक्ट का नाम
Sub-standardरखा गया
इसे कहाँ इस्तेमाल करना सही है
- कोडिंग असिस्टेंस टूल्स को हर जगह आक्रामक रूप से लागू करने के बजाय, निर्भरता से क्षमता घटने की चिंता भी बनी रही
- पर्सनल प्रोजेक्ट्स मोटे तौर पर दो हिस्सों में बँटे थे
- सीखने और आगे बढ़ने के लिए stretch projects
- वे प्रोजेक्ट्स जिनके बारे में बस लगता है कि उनका होना अच्छा होगा
- यह प्रोजेक्ट दूसरी श्रेणी में था, और कोडिंग असिस्टेंस टूल्स लंबे समय से अधूरी इच्छा को ठोस रूप देने में उपयुक्त साबित हुए
- जो प्रोजेक्ट सामान्यतः छुआ भी नहीं जाता, वह अब वास्तव में हाथ में आ गया; यह कुछ वैसा था जैसे न पढ़ी गई किताबों के ढेर को थोड़ा कम कर देना
- अहम कसौटी यह नहीं थी कि दूसरी तरह के प्रोजेक्ट किए जाएँ या नहीं, बल्कि यह थी कि पहली तरह के सीखने वाले प्रोजेक्ट्स भी साथ-साथ जारी रहें
1 टिप्पणियां
Hacker News की राय
जिन projects को मैं सबसे ज़्यादा अधूरा छोड़ देता था, वे video games थे
ऐसे दर्जनों रुके हुए project folders हैं, लेकिन अब मैं उन्हें फिर से experiments की तरह देख रहा हूँ
पिछले हफ़्ते मैंने उनमें से एक को Claude के साथ फिर से शुरू किया, और वह सच में बहुत अच्छा फिट बैठा, दिशा भी तुरंत ठीक कर दी
मैंने पहले ही बता दिया था कि यह मूल रूप से छोड़ा हुआ project है, तो उसने V0 gameplay loop पहले पूरा करने और वहीं से मज़ा ढूँढकर आगे बढ़ाने के लिए push किया, इसलिए मैं बीच में नहीं छोड़ा
game design ideas देने पर यह चलने वाला code दे देता था, procedural algorithm papers देने पर implementation तक निकाल देता था, item brainstorming करता था, graphic assets भी बनाता था, यहाँ तक कि lore बनाने में भी मदद की
Claude Code + Godot का combo सच में बहुत मज़ेदार है, और काफ़ी समय बाद computer इस्तेमाल करना इतना आनंददायक लगा
मैं इसे लेकर आलोचना नहीं कर रहा, लेकिन यह काफ़ी दिलचस्प और थोड़ा असहज लगा
मेरे पास दर्जनों experiment folders थे, और उनमें से काफ़ी अब असली projects में बदल रहे हैं
अब कुछ तो run भी होने लगे हैं, और कुछ अभी भी इतने complex हैं कि agent संभाल नहीं पाता
फिर भी personal apps बनाना लगातार आसान होता जा रहा है
लगता है जल्द ही हम उस स्तर पर पहुँच जाएंगे जहाँ आप कहें, “Alexa, fridge में रखे खाने की photo लेकर nutrition info इकट्ठा करो, उसे workout app के साथ sync करो, health app के goals से मिलाओ, और budget, location, diet restrictions के हिसाब से बेहतर ingredients सुझाने वाला iPhone app email कर दो,” और 15 मिनट में app बन जाए
उदाहरण के लिए कई बार गलत tres files निकलीं, और LLM से ID generate करवाना भी काफ़ी unstable लगा
कुछ हद तक यह उसके ऊपर live narrative चढ़ाने जैसा है
local models अभी भी धीमे और कमज़ोर हैं, लेकिन फिर भी यह देखना काफ़ी दिलचस्प था कि वे क्या output देते हैं
यह सच में शानदार है
अब personal software की मात्रा बहुत बढ़ गई है
कल ही मैंने MediaWiki में पूरी तरह integrated एक native text editor बनाया, जिसमें link autocomplete और syntax input assistance भी जोड़ी
ऐसा software दूसरे लोगों के लिए लगभग बेकार है, इसलिए मेरे अलावा उसे बनाने का कोई कारण नहीं था, और पहले मैं भी इसे नहीं बना पाता था क्योंकि बहुत समय लगता
लेकिन जब coding agent implementation संभाल लेता है, तो bottleneck implementation नहीं बल्कि मेरी attention बन जाती है, और दिमाग़ के खाली slots में ऐसे personal tasks डालने का यह तरीका काफ़ी फिट बैठता है
सच में बहुत अच्छा समय लग रहा है
AI की वजह से मैं COVID के बाद के burnout और आधे-अधूरे projects के ढेर से निकल पाया
आज मैंने terminal-related एक RDP tool भी ठीक किया, और 10 साल पहले OpenRA पर डाले गए issue को भी फिर से उठाया है
engine 10 गुना तेज़ हो गया है और pathfinding भी अब ज़्यादातर ठीक से काम कर रही है
मेरे पास करीब 120 personal tools हैं, और यह बिल्कुल सही है कि bottleneck implementation से context switching पर शिफ्ट हो गया है
इसलिए अब मैं हर project root में एक markdown file रखता हूँ, और जब भी रुकता हूँ, current state और next steps लिख देता हूँ
ताकि वापस आने पर 20 मिनट “मैं कहाँ तक पहुँचा था?” recover करने में बर्बाद न हों
वैसे भी कोई और इन्हें इस्तेमाल नहीं करेगा, इसलिए edge cases handle करने या documentation के pressure की ज़रूरत नहीं, बस मेरी समस्या सही से हल हो और मैं अगले काम पर बढ़ जाऊँ
अभी जो productivity explosion महसूस हो रहा है, उसे देखकर लगता है कि इतनी सारी छोटी ज़रूरतें जमा होने में भी काफ़ी समय लगा होगा
यह कितना niche है, सोचकर हँसी आती है
मुझे code लिखना पहले से आता था, लेकिन समय नहीं था, और AI ने open source projects दुनिया के सामने लाने में पूरी तरह game changer का काम किया
जिन local GUI apps for Linux को बनाने की motivation पहले नहीं आती थी, अब मैं उन्हें मज़े से बना रहा हूँ
Samba 4 Active Directory Domain Controller को remotely manage करने वाला Linux GUI app
Linux Mint / Cinnamon और GtkStatusIcon इस्तेमाल करने वाले GTK environments के लिए Kerberos ticket management GTK3 system tray app
क्योंकि ये दोनों वही तरह के apps हैं जिनकी मुझे सच में ज़रूरत थी और जिन्हें मैं खोज रहा था
coding assistants की वजह से अब module design तक शामिल गहरे structural changes को पहले की तुलना में बहुत कम समय में आज़माया जा सकता है
बेशक इसकी कोई zero cost नहीं है, और कुछ models अक्सर ऐसा code देते हैं जो maintainability standards तक नहीं पहुँचता
सिर्फ़ drafting time बच जाने से iterative fixes, cleanup, या system prompt और instruction files सुधारने में लगने वाला समय ग़ायब नहीं हो जाता
इस बात से मैं ज़्यादा सहमत नहीं हूँ कि tools का ज़्यादा इस्तेमाल deskilling कर देगा
मैं millennial हूँ, और hand tools तथा पुराने wood joinery तरीकों से furniture बनाता हूँ
किसी ने मुझे सिखाया नहीं, मैंने बस online materials देखकर सीखा, और आखिरकार जो चाहिए था वह सीख लिया
बाद में यह skill खो जाने का डर भी नहीं है, क्योंकि ज़रूरत पड़ने पर दोबारा सीख सकता हूँ
किताबें, videos, tools और लकड़ी ग़ायब नहीं होने वाले
AI इस्तेमाल करने से सिर्फ़ इसलिए दिमाग़ में black hole नहीं बन जाता कि आपने हाथ से कम code टाइप किया
यह Alzheimer’s की तरह जानकारी को हमेशा के लिए मिटा नहीं देता, बस थोड़ी देर फिर से warm up करना पड़ता है और चीज़ें जल्दी लौट आती हैं
coding से management में गए और कुछ साल बाद लौटे लोग भी बस थोड़े rusty होते हैं, फिर वापस पकड़ लेते हैं
खासकर personal projects में तो Opus tokens जलाने की भी ज़रूरत नहीं
सस्ते subscription पर MiniMax जैसा कुछ इस्तेमाल करिए, container में yolo mode पर चलाइए, और context, prompts, web search, beads जैसी ticket system दे दीजिए
काम urgent नहीं है, इसलिए brainstorm → plan → implementation → testing का क्रम रखिए, और सिर्फ़ mocks या unit tests नहीं बल्कि real testing methods भी दीजिए, तो समय और पैसे बचाते हुए आखिरकार चीज़ पूरी की जा सकती है
12 साल पहले मैं एक simple app बनाना चाहता था जो यह bar lengths से दिखाए कि मेरे दिन/हफ़्ते/महीने का कितना हिस्सा बचा है, और weather को भी highest/lowest temperature व cloud cover जैसी चीज़ों के bars से दिखाए
text और ASCII में कुछ हद तक काम हो गया था, लेकिन ऐसा interface नहीं बना पाया जिसे रोज़ इस्तेमाल करना चाहूँ, और graphical UI तो कभी बन ही नहीं पाया
फिर मैंने Claude Code को अपनी चाही हुई graphical interface समझाकर चलाया, और उसने बिल्कुल वैसा app बना दिया जैसा मैं चाहता था, यहाँ तक कि date parser का एक bug भी पकड़ लिया जिसे मैं नहीं जानता था
अब वह app मेरी screen के कोने में हमेशा खुला रहता है
अगली बार मैं ऐसा iPhone app बनाना चाहता हूँ जो उन सुबहों में alarm अपने-आप बंद कर दे जब बच्चों का school नहीं होता
मुझे iPhone apps के बारे में कुछ पता नहीं और सीखने का समय भी नहीं था, इसलिए पहले यह सोचना भी मुश्किल था
personal apps के लिए Claude Code सच में शानदार है, और code quality इतनी critical नहीं होती, इसलिए output को वैसे का वैसा इस्तेमाल करना भी काफ़ी है
कई सालों से इस्तेमाल किया जा रहा मेरा Mac clipboard manager OS update के बाद अजीब व्यवहार करने लगा, और App Store के alternatives में भी वे features नहीं थे जो मुझे चाहिए थे
फिर Simon Willison की SwiftUI vibe coding वाली post देखकर मैंने Claude Code से अपना tool बना लिया
कुछ iterations लगे, लेकिन अब वह Mac menu bar में वही सब करता है जो मैं चाहता था, बल्कि उससे भी ज़्यादा
खासकर जब मैंने CC से extra feature ideas पूछे, तो उसने कई ऐसे options सुझाए जिनके बारे में मैंने सोचा भी नहीं था, और चुनी हुई चीज़ों को उसी से implement करवाना काफ़ी प्रभावशाली था
दो दिन पहले मुझे LibreOffice के नए markdown editing component जैसा, लेकिन उससे छोटा और हल्का, एक dedicated markdown editor चाहिए था
इसलिए GPT 5.5 से outline बनवाई और CC से implementation करवाया, और सिर्फ़ दो vibe coding sessions में file open/create, word-processor-style editing, और canonical markdown save करने वाला एक हल्का native Mac app लगभग तैयार हो गया
अभी सिर्फ़ markdown tables नहीं हैं, और आज वही आगे करवाने का सोच रहा हूँ
https://simonwillison.net/2026/Mar/27/vibe-coding-swiftui/
https://news.ycombinator.com/item?id=47298885
मुझे चीज़ें बनाना पसंद है, लेकिन कभी-कभी मैं बस तैयार नतीजा जल्दी पाना चाहता हूँ
किसी specific purpose वाले personal tool को पूरा weekend बर्बाद किए बिना पाना हो, तो LLM की मदद बहुत बढ़िया होती है, और code quality ज़्यादा मायने नहीं रखती
iPhone पर built-in Shortcuts app से भी यह हल हो सकता है
एक shortcut बनाइए जो सारे alarms बंद कर दे, और calendar जैसे signals पढ़कर कुछ dates या times पर alarms on/off करे, फिर उसे recurring schedule पर चला दीजिए
मेरा मानना है कि side projects आम तौर पर तभी क़ीमती होते हैं जब उन्हें करने की इच्छा हो
अगर process और experience पहले हैं, तो वह leisure है; अगर result पहले है, तो वह work है
अगर आप सिर्फ़ result के लिए बहुत सारे side projects कर रहे हैं, तो अंत में आप अपने free time में भी काम ही कर रहे हैं, और तब यह सवाल उठता है कि वह समय सच में कितना free है
आधुनिक समाज पहले ही हमसे बहुत ज़्यादा output माँगता है, इसलिए कम-से-कम side projects को मैं mental well-being के लिए बचाकर रखना चाहता हूँ
हाँ, अगर किसी बड़े अच्छे उद्देश्य के लिए आप समर्पित हैं, तो वह एक exception हो सकता है, और ऐसा उद्देश्य process को भी समृद्ध बना सकता है
कभी-कभी मुझे ऐसा software चाहिए होता है जो किसी और hobby को ज़्यादा मज़ेदार बना दे, लेकिन इसका यह मतलब नहीं कि hobby X का समय निकालकर मैं वह software खुद बनाना चाहूँ
ऊपर से, ऐसे काम कभी-कभी उस तरह की coding भी नहीं होते जो मैं मज़े के लिए करना चाहता हूँ
मेरे लिए यही LLM-assisted coding का sweet spot रहा है, और मैंने अपनी दूसरी hobbies को ज़्यादा enjoy करने के लिए कई helper apps सच में बनाए हैं
यह अब भी hobby time ही है, लेकिन ज़रूरी नहीं कि वह hobby coding ही हो
लेकिन अगर आपके पास कोई itch है जिसे आप solve करना चाहते हैं, या कोई ambition है जिसे समय या motivation की कमी ने रोके रखा था, तो समझ नहीं आता कि उसे free-time labor क्यों कहा जाए
पहले जो projects पूरे weekends या छुट्टियाँ खा जाते थे, अब उनका skeleton 15 मिनट में खड़ा हो सकता है, और यह तो काम के बिल्कुल उलट जैसा है
30 साल से ज़्यादा programming की है, लेकिन हमेशा command-line apps से ही संतुष्ट रहा, और हाल में जाकर Qt सीखना शुरू किया ताकि proper desktop app UI जोड़ सकूँ
learning curve बहुत steep थी, लेकिन अब मैं उससे कुछ हद तक निकल आया हूँ
फिर मैंने LinkedIn पर app screenshots और यह कि यह free open source है, पोस्ट किया, तो ऐसे LinkedIn-टाइप लोग जिन्होंने मुझे hire भी नहीं करना था, सैकड़ों comments करने लगे
कोई कहता था “हम इसे अपने workflow में integrate करना चाहते हैं,” कोई कहता था “यह कोशिश करने वाले आप पहले नहीं हैं,” लेकिन इनमें से कुछ भी motivating नहीं था; उल्टा लगा जैसे मैं दूसरों के लिए मुफ़्त में काम कर रहा हूँ या बेवजह की आलोचना झेल रहा हूँ
उस झटके के बाद मैंने लगभग एक महीने तक हाथ खींच लिया, और फिर समझा कि मुझे असल में Qt सीखने की process और अपने पुराने programs को जीवित होते देखने में मज़ा आता था
इसलिए अब मैं इसे अपनी project car की तरह treat करता हूँ
लगातार खोलता-फोड़ता-सुधारता रहता हूँ, data model को पूरी तरह बदलकर अलग designs के pros and cons देखता हूँ, graphical views खुद बनाता हूँ, language translation भी जोड़कर देखता हूँ
functional तौर पर यह काफ़ी पहले से पूरा है, लेकिन internal structure में बिल्कुल अलग ऐसे पाँच versions हैं, और वही असली मज़ा है
काम के दौरान मैं इसे पूरे दिन इस्तेमाल करता हूँ, और LinkedIn पर फिर कभी इसका ज़िक्र नहीं किया
मेरी personal repo में note app के तीन attempts पड़े थे, और तीनों ideas और free time के बीच की खाई में अटक गए थे
लेकिन Claude Code की वजह से मैंने दो महीनों में वह एक app पूरा कर लिया जो मैं सच में चाहता था
उसे बनाना ही अब तक मिला सबसे बढ़िया hobby था, games या endless scrolling से कहीं बेहतर
जब सालों से दिमाग़ में रखा idea आखिरकार launch होता है, तो उस app में आपका एक हिस्सा गहराई से चला जाता है, और लगता है कि आगे ऐसे solo builders बहुत ज़्यादा होंगे
पुराने projects को फिर से बनाने की कोशिश को कमतर नहीं आँक रहा, लेकिन market के बहुत ज़्यादा narrowly specialized projects से भर जाने की पूरी संभावना है
पहले app boxes पर specs लिखी होती थीं, अब शायद किसी नई modeling language जैसी चीज़ चाहिए होगी जो use case और scope समझा सके
मेरा अनुभव भी लगभग यही था
comparative aggregation वाला एक side project एक साल से ज़्यादा 20% complete पर अटका था, और मैं महीने में एक बार खोलकर todo list देखता और थककर tab बंद कर देता
लेकिन Claude के साथ कुछ weekends बैठने पर मैं उस आधे-तैयार wall को पार कर गया
सबसे चौंकाने वाली चीज़ raw speed नहीं थी, बल्कि यह थी कि कुछ भी करने से पहले अपने पुराने code को एक घंटे तक फिर से दिमाग़ में load करने वाली re-entry cost लगभग गायब हो गई
बढ़ा-चढ़ाकर किया गया hype परेशान करता है, लेकिन जो लोग इन tools का मज़ाक उड़ाते हैं, उनमें से ज़्यादातर ने शायद इन्हें ऐसे boring कामों में सच में आज़माया ही नहीं है
मेरे पास हमेशा ideas उतने से ज़्यादा रहे हैं जितना मैं संभाल सकता था, और उनमें कुछ काफ़ी अच्छे भी थे
AI tools की वजह से अब मैं उनमें से ज़्यादा चीज़ों को कम-से-कम working form में ला पा रहा हूँ
विडंबना यह है कि ऐसी implementations की value बहुत तेज़ी से घट रही है
कुछ हफ़्ते पहले मैंने browser में चलने वाली और server की ज़रूरत न रखने वाली एक छोटी search library बनाई, जो Elasticsearch style में term/matching query और ज़्यादातर aggregation support करती है, और ANN vector search भी WebGPU से जोड़ दिया
यह लगभग “feature X डालो” कहने पर तुरंत हो जाने जैसा था, और मैं इसे असली websites पर पहले ही इस्तेमाल भी कर चुका हूँ
यह scale out नहीं कर सकती, लेकिन blogs या docs sites के लिए बहुत अच्छी है, और docs site https://querylight.tryformation.com/ पर है
यह ठीक वैसे ही काम करती है जैसा मैंने सोचा था, और Elasticsearch की long-tail features भी शायद बहुत कम मेहनत से जोड़ी जा सकती हैं
दूसरी तरफ़ GitHub पर प्रतिक्रिया काफ़ी ठंडी रही
अब शायद हर कोई AI से अपना खुद का tool बनाने में व्यस्त है, इसलिए दूसरे की मेहनत पर बहुत उत्साहित नहीं होता, और सच कहूँ तो यह बात समझ भी आती है
अगर search library चाहिए, तो आप खुद generate कर सकते हैं, या AI से कोई ठीक-ठाक विकल्प चुनवा सकते हैं
वैसे भी इसे बनाने में कोई बहुत बड़ी मेहनत नहीं लगी थी
ऐसे projects की economic value बहुत तेज़ी से गिर रही है
फिर भी मुझे बनाना पसंद है, इसलिए मैं जारी रखूँगा, और ऐसे tools की learning curve सीखना भी ज़रूरी मानता हूँ
आगे भी करने को बहुत काम होगा, लेकिन लोग कम पैसे देकर भी ठीक-ठाक results की उम्मीद करेंगे, और उन expectations पर खरा उतरने के लिए tools में skill चाहिए होगी
आखिरकार जब possible scope बढ़ता है, तो ambition का baseline भी साथ में ऊपर चला जाता है; यह सोचना ग़लत होगा कि AI काम कर देगा इसलिए इंसान से कोई expectation नहीं बचेगी
मैं भी पिछले कुछ महीनों से बहुत लंबे घंटे काम कर रहा हूँ
कई सालों तक हर हफ़्ते मेरे दिमाग़ में कई product ideas आते थे, लेकिन वे सब सिर्फ़ Apple Notes में जमा होते रहते थे
लेकिन पिछले एक महीने में मैंने उनमें से तीन को सच में इस्तेमाल करने लायक beta में बदल दिया है, और अब मैं तीनों को रोज़ इस्तेमाल कर रहा हूँ