[{"data":1,"prerenderedAt":279},["ShallowReactive",2],{"idea-git-for-everything":3,"related-git-for-everything":49},{"id":4,"title":5,"body":6,"cardSize":36,"category":37,"date":38,"description":39,"extension":40,"featured":41,"meta":42,"navigation":43,"path":44,"readingTime":45,"seo":46,"stem":47,"updated":36,"__hash__":48},"ideas\u002Fideas\u002Fgit-for-everything.md","Git for Everything",{"type":7,"value":8,"toc":32},"minimark",[9,13,16,19,22,25],[10,11,12],"p",{},"Shower thought: git was designed for source code, but the mental model works for any collaborative document that changes over time.",[10,14,15],{},"Laws should be in git. Every amendment is a commit. Every bill is a pull request. Citizens can review the diff. The blame command would be literally useful.",[10,17,18],{},"Recipes should be in git. You fork your grandmother's biryani recipe and make modifications. Your cousin forks yours. The original stays preserved while variations branch out.",[10,20,21],{},"City planning should be in git. Zoning changes as commits. Public comments as issues. The master branch is the current city plan.",[10,23,24],{},"Someone will tell me this already exists. But the fact that I do not know about it means it has not been done well enough yet.",[26,27,28],"ul",{},[29,30,31],"li",{},"Mohan",{"title":33,"searchDepth":34,"depth":34,"links":35},"",3,[],null,"Ideas","2026-02-20","What if we used version control for laws, recipes, and city planning?","md",false,{},true,"\u002Fideas\u002Fgit-for-everything",2,{"title":5,"description":39},"ideas\u002Fgit-for-everything","X_rrmtAQpnpZt6Sxo1rlw2KarLopWIXy51ddJIii04Y",[50,171,231],{"id":51,"title":52,"body":53,"cardSize":162,"category":37,"date":163,"description":164,"extension":40,"featured":43,"meta":165,"navigation":43,"path":166,"readingTime":167,"seo":168,"stem":169,"updated":36,"__hash__":170},"ideas\u002Fideas\u002Fwhy-every-city-needs-an-api.md","Why Every City Needs an API",{"type":7,"value":54,"toc":156},[55,58,63,66,80,88,92,95,104,107,111,114,117,121,124,146,149,152],[10,56,57],{},"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.",[59,60,62],"h2",{"id":61},"the-problem-is-not-missing-data","The problem is not missing data",[10,64,65],{},"Governments collect enormous amounts of data. Water, electricity, traffic, waste, pollution, land records. The problem is access. It is trapped in:",[26,67,68,71,74,77],{},[29,69,70],{},"PDF reports nobody reads",[29,72,73],{},"Internal databases with no external interface",[29,75,76],{},"Physical records in offices that close at 4 PM",[29,78,79],{},"Dashboards that only show what the department decided to show",[10,81,82,83,87],{},"What if you could just do ",[84,85,86],"code",{},"GET \u002Fapi\u002Fbangalore\u002Fwater\u002Ftimings?area=jayanagar","?",[59,89,91],{"id":90},"what-a-city-api-would-look-like","What a city API would look like",[10,93,94],{},"Think of it as a standard REST interface. Every city implements the same spec, like how every weather station reports in the same format.",[96,97,102],"pre",{"className":98,"code":100,"language":101},[99],"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",[84,103,100],{"__ignoreMap":33},[10,105,106],{},"The spec would be open. Any city can implement it. Developers can build tools on top of it.",[59,108,110],{"id":109},"who-benefits","Who benefits",[10,112,113],{},"Startups building civic tools. Journalists doing data stories. Researchers comparing cities. Citizens who just want to know why their water is brown today.",[10,115,116],{},"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.",[59,118,120],{"id":119},"why-this-has-not-happened-yet","Why this has not happened yet",[10,122,123],{},"Three reasons, in order of difficulty:",[125,126,127,134,140],"ol",{},[29,128,129,133],{},[130,131,132],"strong",{},"Bureaucratic inertia."," Nobody gets promoted for building APIs.",[29,135,136,139],{},[130,137,138],{},"Data cleaning."," The underlying data is messy. Different departments use different systems, formats, and update cycles.",[29,141,142,145],{},[130,143,144],{},"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,147,148],{},"Still, I think this is worth building. Start with one city. Make it so useful that others copy the format.",[10,150,151],{},"My ideas folder has three different versions of a spec for this. One day I will clean it up and publish it.",[26,153,154],{},[29,155,31],{},{"title":33,"searchDepth":34,"depth":34,"links":157},[158,159,160,161],{"id":61,"depth":45,"text":62},{"id":90,"depth":45,"text":91},{"id":109,"depth":45,"text":110},{"id":119,"depth":45,"text":120},"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":52,"description":164},"ideas\u002Fwhy-every-city-needs-an-api","rdgtlecVmcQ7rHlBLEO80b_xAOg4XST_-VkxbvzHZ9g",{"id":172,"title":173,"body":174,"cardSize":36,"category":37,"date":163,"description":224,"extension":40,"featured":43,"meta":225,"navigation":43,"path":226,"readingTime":227,"seo":228,"stem":229,"updated":36,"__hash__":230},"ideas\u002Fideas\u002Fwhy-most-side-projects-die.md","Why Most Side Projects Die on Day 14",{"type":7,"value":175,"toc":219},[176,179,182,185,189,192,195,199,202,205,209,212,215],[10,177,178],{},"There is a pattern I have noticed in myself and in every developer I know.",[10,180,181],{},"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,183,184],{},"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.",[59,186,188],{"id":187},"the-novelty-cliff","The Novelty Cliff",[10,190,191],{},"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,193,194],{},"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.",[59,196,198],{"id":197},"what-actually-works","What Actually Works",[10,200,201],{},"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,203,204],{},"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.\"",[59,206,208],{"id":207},"the-real-question","The Real Question",[10,210,211],{},"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,213,214],{},"At least, that is the theory. I am on day 12 of a new project right now. Ask me again in a week.",[26,216,217],{},[29,218,31],{},{"title":33,"searchDepth":34,"depth":34,"links":220},[221,222,223],{"id":187,"depth":45,"text":188},{"id":197,"depth":45,"text":198},{"id":207,"depth":45,"text":208},"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":173,"description":224},"ideas\u002Fwhy-most-side-projects-die","ykOIbNcEFiNLVfupZR8f1CcT5t7bMwWLPy30NskzQ-I",{"id":232,"title":233,"body":234,"cardSize":271,"category":37,"date":272,"description":273,"extension":40,"featured":41,"meta":274,"navigation":43,"path":275,"readingTime":34,"seo":276,"stem":277,"updated":36,"__hash__":278},"ideas\u002Fideas\u002Fthe-chai-test-for-software.md","The Chai Test for Software",{"type":7,"value":235,"toc":269},[236,239,242,245,256,259,262,265],[10,237,238],{},"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,240,241],{},"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,243,244],{},"The chai test is simple:",[125,246,247,250,253],{},[29,248,249],{},"Who uses it?",[29,251,252],{},"What problem does it solve?",[29,254,255],{},"Why would they pick this over what they already do?",[10,257,258],{},"If you cannot answer those three in plain language, go back and think harder.",[10,260,261],{},"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,263,264],{},"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.",[26,266,267],{},[29,268,31],{},{"title":33,"searchDepth":34,"depth":34,"links":270},[],"medium","2026-03-25","If you cannot explain your software to a chai wallah, you do not understand it well enough yourself.",{},"\u002Fideas\u002Fthe-chai-test-for-software",{"title":233,"description":273},"ideas\u002Fthe-chai-test-for-software","bXYMCsCeSKqB_d0HS1902wwX4oB0AEjTMpv_y9Z-1KY",1776214201870]