[{"data":1,"prerenderedAt":304},["ShallowReactive",2],{"idea-the-chai-test-for-software":3,"related-the-chai-test-for-software":64},{"id":4,"title":5,"body":6,"cardSize":51,"category":52,"date":53,"description":54,"extension":55,"featured":56,"meta":57,"navigation":58,"path":59,"readingTime":49,"seo":60,"stem":61,"updated":62,"__hash__":63},"ideas\u002Fideas\u002Fthe-chai-test-for-software.md","The Chai Test for Software",{"type":7,"value":8,"toc":47},"minimark",[9,13,16,19,32,35,38,41],[10,11,12],"p",{},"My grandfather had this test for any new idea. He would say, explain it to the chai wallah at the corner. Not because the chai wallah was less intelligent (he was quite sharp about economics, actually), but because if you cannot strip away the jargon and explain the core value in two sentences, you probably do not understand it yourself.",[10,14,15],{},"I apply this to software now. When someone describes their startup to me using words like \"AI-powered blockchain-enabled decentralized infrastructure,\" I ask them: what does it actually do? For whom? Why would they care?",[10,17,18],{},"The chai test is simple:",[20,21,22,26,29],"ol",{},[23,24,25],"li",{},"Who uses it?",[23,27,28],{},"What problem does it solve?",[23,30,31],{},"Why would they pick this over what they already do?",[10,33,34],{},"If you cannot answer those three in plain language, go back and think harder.",[10,36,37],{},"The best software I have used passes this test easily. \"It lets you send messages that disappear.\" \"It shows you the cheapest flight.\" \"It tracks what you eat.\" Clear. Specific. Useful.",[10,39,40],{},"My ideas folder is full of things that fail the chai test. I keep them anyway, because sometimes the idea is good but I just have not found the right framing yet.",[42,43,44],"ul",{},[23,45,46],{},"Mohan",{"title":48,"searchDepth":49,"depth":49,"links":50},"",3,[],"medium","Ideas","2026-03-25","If you cannot explain your software to a chai wallah, you do not understand it well enough yourself.","md",false,{},true,"\u002Fideas\u002Fthe-chai-test-for-software",{"title":5,"description":54},"ideas\u002Fthe-chai-test-for-software",null,"bXYMCsCeSKqB_d0HS1902wwX4oB0AEjTMpv_y9Z-1KY",[65,186,246],{"id":66,"title":67,"body":68,"cardSize":177,"category":52,"date":178,"description":179,"extension":55,"featured":58,"meta":180,"navigation":58,"path":181,"readingTime":182,"seo":183,"stem":184,"updated":62,"__hash__":185},"ideas\u002Fideas\u002Fwhy-every-city-needs-an-api.md","Why Every City Needs an API",{"type":7,"value":69,"toc":170},[70,73,78,81,95,103,107,110,119,122,126,129,132,136,139,160,163,166],[10,71,72],{},"I have been thinking about this since a trip to Bangalore last year. I wanted to check water supply timings for my parents' neighborhood. The data existed somewhere in BWSSB's system, but the only way to access it was a badly scanned PDF from 2019.",[74,75,77],"h2",{"id":76},"the-problem-is-not-missing-data","The problem is not missing data",[10,79,80],{},"Governments collect enormous amounts of data. Water, electricity, traffic, waste, pollution, land records. The problem is access. It is trapped in:",[42,82,83,86,89,92],{},[23,84,85],{},"PDF reports nobody reads",[23,87,88],{},"Internal databases with no external interface",[23,90,91],{},"Physical records in offices that close at 4 PM",[23,93,94],{},"Dashboards that only show what the department decided to show",[10,96,97,98,102],{},"What if you could just do ",[99,100,101],"code",{},"GET \u002Fapi\u002Fbangalore\u002Fwater\u002Ftimings?area=jayanagar","?",[74,104,106],{"id":105},"what-a-city-api-would-look-like","What a city API would look like",[10,108,109],{},"Think of it as a standard REST interface. Every city implements the same spec, like how every weather station reports in the same format.",[111,112,117],"pre",{"className":113,"code":115,"language":116},[114],"language-text","GET \u002Fapi\u002F{city}\u002Fwater\u002Fquality\nGET \u002Fapi\u002F{city}\u002Ftraffic\u002Frealtime\nGET \u002Fapi\u002F{city}\u002Fair-quality?station=central\nGET \u002Fapi\u002F{city}\u002Fproperty\u002Ftax?survey_number=123\nGET \u002Fapi\u002F{city}\u002Fschools?type=public&radius=2km\n","text",[99,118,115],{"__ignoreMap":48},[10,120,121],{},"The spec would be open. Any city can implement it. Developers can build tools on top of it.",[74,123,125],{"id":124},"who-benefits","Who benefits",[10,127,128],{},"Startups building civic tools. Journalists doing data stories. Researchers comparing cities. Citizens who just want to know why their water is brown today.",[10,130,131],{},"The closest thing we have is the US Census Bureau API and India's data.gov.in, but those are national datasets updated annually. Cities change daily.",[74,133,135],{"id":134},"why-this-has-not-happened-yet","Why this has not happened yet",[10,137,138],{},"Three reasons, in order of difficulty:",[20,140,141,148,154],{},[23,142,143,147],{},[144,145,146],"strong",{},"Bureaucratic inertia."," Nobody gets promoted for building APIs.",[23,149,150,153],{},[144,151,152],{},"Data cleaning."," The underlying data is messy. Different departments use different systems, formats, and update cycles.",[23,155,156,159],{},[144,157,158],{},"Accountability."," An API makes it easy to prove what the government said vs what actually happened. Not every department welcomes that kind of transparency.",[10,161,162],{},"Still, I think this is worth building. Start with one city. Make it so useful that others copy the format.",[10,164,165],{},"My ideas folder has three different versions of a spec for this. One day I will clean it up and publish it.",[42,167,168],{},[23,169,46],{},{"title":48,"searchDepth":49,"depth":49,"links":171},[172,174,175,176],{"id":76,"depth":173,"text":77},2,{"id":105,"depth":173,"text":106},{"id":124,"depth":173,"text":125},{"id":134,"depth":173,"text":135},"large","2026-03-28","City data is locked in PDFs, portals, and annual reports. What if every city had a REST API? Here is what that would look like.",{},"\u002Fideas\u002Fwhy-every-city-needs-an-api",6,{"title":67,"description":179},"ideas\u002Fwhy-every-city-needs-an-api","rdgtlecVmcQ7rHlBLEO80b_xAOg4XST_-VkxbvzHZ9g",{"id":187,"title":188,"body":189,"cardSize":62,"category":52,"date":178,"description":239,"extension":55,"featured":58,"meta":240,"navigation":58,"path":241,"readingTime":242,"seo":243,"stem":244,"updated":62,"__hash__":245},"ideas\u002Fideas\u002Fwhy-most-side-projects-die.md","Why Most Side Projects Die on Day 14",{"type":7,"value":190,"toc":234},[191,194,197,200,204,207,210,214,217,220,224,227,230],[10,192,193],{},"There is a pattern I have noticed in myself and in every developer I know.",[10,195,196],{},"You get an idea. It feels electric. You buy the domain (of course you do). You set up the repo. You code furiously for a weekend. Maybe two weekends. And then, somewhere around day 14, the whole thing just... stops.",[10,198,199],{},"I have been tracking my own side projects for the last three years. Out of 23 projects started, exactly 4 made it past the one-month mark. The rest died somewhere between day 10 and day 18.",[74,201,203],{"id":202},"the-novelty-cliff","The Novelty Cliff",[10,205,206],{},"The problem is not laziness. The problem is that the first two weeks are all novelty. You are making decisions. Picking technologies. Designing the architecture. Every commit feels like progress because everything is new.",[10,208,209],{},"Then you hit what I call the Novelty Cliff. The scaffolding is done. The exciting decisions are made. What remains is the boring middle: error handling, edge cases, that one API integration that requires reading 40 pages of documentation.",[74,211,213],{"id":212},"what-actually-works","What Actually Works",[10,215,216],{},"The projects that survived past day 14 had one thing in common: I told someone about them before I started coding. Not after. Before.",[10,218,219],{},"When you tell someone \"I am building X,\" you create a small social contract. Not a big one. But enough that when day 14 arrives and you want to quit, there is a tiny voice saying \"but you told Rajesh about this.\"",[74,221,223],{"id":222},"the-real-question","The Real Question",[10,225,226],{},"I do not think the answer is discipline. The answer is designing your projects so that the boring middle is smaller. Ship something embarrassingly small on day 3. Get one real user by day 7. Make the feedback loop so tight that you never hit the Novelty Cliff at all.",[10,228,229],{},"At least, that is the theory. I am on day 12 of a new project right now. Ask me again in a week.",[42,231,232],{},[23,233,46],{},{"title":48,"searchDepth":49,"depth":49,"links":235},[236,237,238],{"id":202,"depth":173,"text":203},{"id":212,"depth":173,"text":213},{"id":222,"depth":173,"text":223},"There is a pattern. You start excited, you build for two weeks, and then the motivation evaporates. I think I know why.",{},"\u002Fideas\u002Fwhy-most-side-projects-die",5,{"title":188,"description":239},"ideas\u002Fwhy-most-side-projects-die","ykOIbNcEFiNLVfupZR8f1CcT5t7bMwWLPy30NskzQ-I",{"id":247,"title":248,"body":249,"cardSize":62,"category":52,"date":296,"description":297,"extension":55,"featured":56,"meta":298,"navigation":58,"path":299,"readingTime":300,"seo":301,"stem":302,"updated":62,"__hash__":303},"ideas\u002Fideas\u002Findia-needs-a-craigslist.md","India Still Needs Its Own Craigslist",{"type":7,"value":250,"toc":291},[251,254,257,260,264,267,271,274,278,281,284,287],[10,252,253],{},"I keep coming back to this idea every few years. India still does not have a proper classifieds site that works the way Craigslist works in the US.",[10,255,256],{},"OLX exists, yes. Quikr existed. But they both went the app-first, VC-funded, growth-at-all-costs route. They added features nobody asked for. They tried to \"improve\" on the Craigslist model by making it prettier, more social, more app-like.",[10,258,259],{},"They missed the point entirely.",[74,261,263],{"id":262},"what-craigslist-gets-right","What Craigslist Gets Right",[10,265,266],{},"Craigslist works because it is boring. It loads fast. It has zero friction. You can post in 30 seconds. The design is ugly but functional. And because of this, it has become infrastructure. People in San Francisco use Craigslist the way people in Mumbai use WhatsApp groups for buying and selling.",[74,268,270],{"id":269},"the-whatsapp-problem","The WhatsApp Problem",[10,272,273],{},"In India, the classified market moved to WhatsApp groups. Every apartment complex, every neighborhood, every college has buying\u002Fselling WhatsApp groups. This works but it is terrible. No search. No archive. No way to browse. Messages get buried in 200 \"good morning\" forwards from your uncle.",[74,275,277],{"id":276},"what-would-work","What Would Work",[10,279,280],{},"A text-first, mobile-web-first classifieds site. No app download required. City-based. Neighborhood-based. As fast and ugly as Craigslist. With WhatsApp as the contact method (because nobody in India will give you their phone number to a stranger, but WhatsApp feels safer for some reason).",[10,282,283],{},"The hard part is not the technology. The hard part is getting the initial supply of listings in one city. You would need to start in one neighborhood of one city and grow from there.",[10,285,286],{},"I keep almost building this. Maybe someday.",[42,288,289],{},[23,290,46],{},{"title":48,"searchDepth":49,"depth":49,"links":292},[293,294,295],{"id":262,"depth":173,"text":263},{"id":269,"depth":173,"text":270},{"id":276,"depth":173,"text":277},"2026-03-20","OLX tried. Quikr tried. Neither got it right. The opportunity is still wide open.",{},"\u002Fideas\u002Findia-needs-a-craigslist",4,{"title":248,"description":297},"ideas\u002Findia-needs-a-craigslist","lSjmgLmWxzC_sxU0UeWepGC5xM4pf1dnbMHQjLdu50k",1776214201870]