[{"data":1,"prerenderedAt":873},["ShallowReactive",2],{"all-ideas":3},[4,137,197,246,281,338,364,418,449,502,592,618,665,719,751,787,840],{"id":5,"title":6,"body":7,"cardSize":124,"category":125,"date":126,"description":127,"extension":128,"featured":129,"meta":130,"navigation":129,"path":131,"readingTime":132,"seo":133,"stem":134,"updated":135,"__hash__":136},"ideas\u002Fideas\u002Fwhy-every-city-needs-an-api.md","Why Every City Needs an API",{"type":8,"value":9,"toc":116},"minimark",[10,14,19,22,38,46,50,53,63,66,70,73,76,80,83,105,108,111],[11,12,13],"p",{},"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.",[15,16,18],"h2",{"id":17},"the-problem-is-not-missing-data","The problem is not missing data",[11,20,21],{},"Governments collect enormous amounts of data. Water, electricity, traffic, waste, pollution, land records. The problem is access. It is trapped in:",[23,24,25,29,32,35],"ul",{},[26,27,28],"li",{},"PDF reports nobody reads",[26,30,31],{},"Internal databases with no external interface",[26,33,34],{},"Physical records in offices that close at 4 PM",[26,36,37],{},"Dashboards that only show what the department decided to show",[11,39,40,41,45],{},"What if you could just do ",[42,43,44],"code",{},"GET \u002Fapi\u002Fbangalore\u002Fwater\u002Ftimings?area=jayanagar","?",[15,47,49],{"id":48},"what-a-city-api-would-look-like","What a city API would look like",[11,51,52],{},"Think of it as a standard REST interface. Every city implements the same spec, like how every weather station reports in the same format.",[54,55,60],"pre",{"className":56,"code":58,"language":59},[57],"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",[42,61,58],{"__ignoreMap":62},"",[11,64,65],{},"The spec would be open. Any city can implement it. Developers can build tools on top of it.",[15,67,69],{"id":68},"who-benefits","Who benefits",[11,71,72],{},"Startups building civic tools. Journalists doing data stories. Researchers comparing cities. Citizens who just want to know why their water is brown today.",[11,74,75],{},"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.",[15,77,79],{"id":78},"why-this-has-not-happened-yet","Why this has not happened yet",[11,81,82],{},"Three reasons, in order of difficulty:",[84,85,86,93,99],"ol",{},[26,87,88,92],{},[89,90,91],"strong",{},"Bureaucratic inertia."," Nobody gets promoted for building APIs.",[26,94,95,98],{},[89,96,97],{},"Data cleaning."," The underlying data is messy. Different departments use different systems, formats, and update cycles.",[26,100,101,104],{},[89,102,103],{},"Accountability."," An API makes it easy to prove what the government said vs what actually happened. Not every department welcomes that kind of transparency.",[11,106,107],{},"Still, I think this is worth building. Start with one city. Make it so useful that others copy the format.",[11,109,110],{},"My ideas folder has three different versions of a spec for this. One day I will clean it up and publish it.",[23,112,113],{},[26,114,115],{},"Mohan",{"title":62,"searchDepth":117,"depth":117,"links":118},3,[119,121,122,123],{"id":17,"depth":120,"text":18},2,{"id":48,"depth":120,"text":49},{"id":68,"depth":120,"text":69},{"id":78,"depth":120,"text":79},"large","Ideas","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.","md",true,{},"\u002Fideas\u002Fwhy-every-city-needs-an-api",6,{"title":6,"description":127},"ideas\u002Fwhy-every-city-needs-an-api",null,"rdgtlecVmcQ7rHlBLEO80b_xAOg4XST_-VkxbvzHZ9g",{"id":138,"title":139,"body":140,"cardSize":135,"category":125,"date":126,"description":190,"extension":128,"featured":129,"meta":191,"navigation":129,"path":192,"readingTime":193,"seo":194,"stem":195,"updated":135,"__hash__":196},"ideas\u002Fideas\u002Fwhy-most-side-projects-die.md","Why Most Side Projects Die on Day 14",{"type":8,"value":141,"toc":185},[142,145,148,151,155,158,161,165,168,171,175,178,181],[11,143,144],{},"There is a pattern I have noticed in myself and in every developer I know.",[11,146,147],{},"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.",[11,149,150],{},"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.",[15,152,154],{"id":153},"the-novelty-cliff","The Novelty Cliff",[11,156,157],{},"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.",[11,159,160],{},"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.",[15,162,164],{"id":163},"what-actually-works","What Actually Works",[11,166,167],{},"The projects that survived past day 14 had one thing in common: I told someone about them before I started coding. Not after. Before.",[11,169,170],{},"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.\"",[15,172,174],{"id":173},"the-real-question","The Real Question",[11,176,177],{},"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.",[11,179,180],{},"At least, that is the theory. I am on day 12 of a new project right now. Ask me again in a week.",[23,182,183],{},[26,184,115],{},{"title":62,"searchDepth":117,"depth":117,"links":186},[187,188,189],{"id":153,"depth":120,"text":154},{"id":163,"depth":120,"text":164},{"id":173,"depth":120,"text":174},"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":139,"description":190},"ideas\u002Fwhy-most-side-projects-die","ykOIbNcEFiNLVfupZR8f1CcT5t7bMwWLPy30NskzQ-I",{"id":198,"title":199,"body":200,"cardSize":237,"category":125,"date":238,"description":239,"extension":128,"featured":240,"meta":241,"navigation":129,"path":242,"readingTime":117,"seo":243,"stem":244,"updated":135,"__hash__":245},"ideas\u002Fideas\u002Fthe-chai-test-for-software.md","The Chai Test for Software",{"type":8,"value":201,"toc":235},[202,205,208,211,222,225,228,231],[11,203,204],{},"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.",[11,206,207],{},"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?",[11,209,210],{},"The chai test is simple:",[84,212,213,216,219],{},[26,214,215],{},"Who uses it?",[26,217,218],{},"What problem does it solve?",[26,220,221],{},"Why would they pick this over what they already do?",[11,223,224],{},"If you cannot answer those three in plain language, go back and think harder.",[11,226,227],{},"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.",[11,229,230],{},"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.",[23,232,233],{},[26,234,115],{},{"title":62,"searchDepth":117,"depth":117,"links":236},[],"medium","2026-03-25","If you cannot explain your software to a chai wallah, you do not understand it well enough yourself.",false,{},"\u002Fideas\u002Fthe-chai-test-for-software",{"title":199,"description":239},"ideas\u002Fthe-chai-test-for-software","bXYMCsCeSKqB_d0HS1902wwX4oB0AEjTMpv_y9Z-1KY",{"id":247,"title":248,"body":249,"cardSize":237,"category":272,"date":273,"description":274,"extension":128,"featured":240,"meta":275,"navigation":129,"path":276,"readingTime":277,"seo":278,"stem":279,"updated":135,"__hash__":280},"ideas\u002Fideas\u002Fsqlite-is-underrated.md","SQLite is Underrated",{"type":8,"value":250,"toc":270},[251,254,257,260,263,266],[11,252,253],{},"I keep coming back to SQLite. Every time I start a new side project, I reach for Postgres out of habit, then realize I am building a todo app for one person and a 200MB database server is absurd.",[11,255,256],{},"SQLite handles more than people think. It can do millions of reads per second. It supports JSON columns. It works on phones, servers, and embedded devices. Your browser uses it right now.",[11,258,259],{},"The real advantage is not performance, though. It is simplicity. Your database is a file. You can email it. You can version control it. You can deploy it by copying a file. No connection strings, no user management, no cluster configuration.",[11,261,262],{},"For 90% of the side projects I see developers building, SQLite is the right choice. The other 10% need Postgres. But most people reach for Postgres for 100% of projects because that is what the tutorial used.",[11,264,265],{},"I am not saying abandon Postgres. I am saying think about what you actually need before reaching for the heavy tools.",[23,267,268],{},[26,269,115],{},{"title":62,"searchDepth":117,"depth":117,"links":271},[],"Code","2026-03-22","Most apps do not need Postgres. They need SQLite and a clear schema.",{},"\u002Fideas\u002Fsqlite-is-underrated",4,{"title":248,"description":274},"ideas\u002Fsqlite-is-underrated","Qe3JlTD6GjpIyYa4CytBCsnVFGvVdTBOgIPyrC1Z5d8",{"id":282,"title":283,"body":284,"cardSize":135,"category":125,"date":331,"description":332,"extension":128,"featured":240,"meta":333,"navigation":129,"path":334,"readingTime":277,"seo":335,"stem":336,"updated":135,"__hash__":337},"ideas\u002Fideas\u002Findia-needs-a-craigslist.md","India Still Needs Its Own Craigslist",{"type":8,"value":285,"toc":326},[286,289,292,295,299,302,306,309,313,316,319,322],[11,287,288],{},"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.",[11,290,291],{},"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.",[11,293,294],{},"They missed the point entirely.",[15,296,298],{"id":297},"what-craigslist-gets-right","What Craigslist Gets Right",[11,300,301],{},"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.",[15,303,305],{"id":304},"the-whatsapp-problem","The WhatsApp Problem",[11,307,308],{},"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.",[15,310,312],{"id":311},"what-would-work","What Would Work",[11,314,315],{},"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).",[11,317,318],{},"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.",[11,320,321],{},"I keep almost building this. Maybe someday.",[23,323,324],{},[26,325,115],{},{"title":62,"searchDepth":117,"depth":117,"links":327},[328,329,330],{"id":297,"depth":120,"text":298},{"id":304,"depth":120,"text":305},{"id":311,"depth":120,"text":312},"2026-03-20","OLX tried. Quikr tried. Neither got it right. The opportunity is still wide open.",{},"\u002Fideas\u002Findia-needs-a-craigslist",{"title":283,"description":332},"ideas\u002Findia-needs-a-craigslist","lSjmgLmWxzC_sxU0UeWepGC5xM4pf1dnbMHQjLdu50k",{"id":339,"title":340,"body":341,"cardSize":355,"category":356,"date":331,"description":357,"extension":128,"featured":240,"meta":358,"navigation":129,"path":359,"readingTime":360,"seo":361,"stem":362,"updated":135,"__hash__":363},"ideas\u002Fideas\u002Fshower-thought-search-engines.md","Search engines peaked in 2012",{"type":8,"value":342,"toc":353},[343,346,349],[11,344,345],{},"Remember when you could Google something and get a straightforward answer on the first result? Now the first result is an ad, the second is a listicle written by AI, the third is a Reddit thread where someone asks the same question and the top reply says \"just Google it.\"",[11,347,348],{},"We went backwards.",[23,350,351],{},[26,352,115],{},{"title":62,"searchDepth":117,"depth":117,"links":354},[],"small","Miscellaneous","A shower thought about how Google used to just give you the answer.",{},"\u002Fideas\u002Fshower-thought-search-engines",1,{"title":340,"description":357},"ideas\u002Fshower-thought-search-engines","IjJHiWS5emyQ7HLDxfNe0TPB51tXQ0zBS56XcErakWk",{"id":365,"title":366,"body":367,"cardSize":237,"category":410,"date":411,"description":412,"extension":128,"featured":240,"meta":413,"navigation":129,"path":414,"readingTime":193,"seo":415,"stem":416,"updated":135,"__hash__":417},"ideas\u002Fideas\u002Fbuilding-in-public-is-a-privilege.md","Building in Public is a Privilege",{"type":8,"value":368,"toc":408},[369,372,375,378,381,395,398,401,404],[11,370,371],{},"The \"build in public\" movement assumes you have the safety to share your numbers, your failures, your revenue. That is not true for everyone.",[11,373,374],{},"If you are on a work visa, sharing a side project's revenue could complicate your immigration status. If you work for a company with strict IP clauses, sharing code could get you fired. If you live in a country where success attracts the wrong kind of attention, showing revenue screenshots is a bad idea.",[11,376,377],{},"I have friends in Bangalore who build incredible side projects but never share them publicly. Not because they are shy, but because their employer's contract says anything built on their time (including weekends, which is absurd) belongs to the company.",[11,379,380],{},"The people who build in public most loudly tend to be:",[84,382,383,386,389,392],{},[26,384,385],{},"Based in the US or Europe",[26,387,388],{},"Self-employed or in a flexible job",[26,390,391],{},"Not worried about visa status",[26,393,394],{},"In a financial position where failure is uncomfortable but not catastrophic",[11,396,397],{},"This is not a criticism of building in public. I think it is wonderful when it works. But I have noticed the movement sometimes looks down on people who keep their projects private, as if they are hiding something or lack confidence.",[11,399,400],{},"Sometimes, they are just being practical.",[11,402,403],{},"I build in semi-public. I share ideas freely (hence this blog), but I keep the specifics of what I am actually building a bit closer to the chest. This is a choice shaped by circumstances, not personality.",[23,405,406],{},[26,407,115],{},{"title":62,"searchDepth":117,"depth":117,"links":409},[],"Business","2026-03-18","Not everyone can share their work freely. Recognizing that changes how I think about the movement.",{},"\u002Fideas\u002Fbuilding-in-public-is-a-privilege",{"title":366,"description":412},"ideas\u002Fbuilding-in-public-is-a-privilege","2g32X8mH2ou0LeeLa-uzPtOgJcfeDLwiaswmBIXLNN8",{"id":419,"title":420,"body":421,"cardSize":355,"category":441,"date":442,"description":443,"extension":128,"featured":240,"meta":444,"navigation":129,"path":445,"readingTime":120,"seo":446,"stem":447,"updated":135,"__hash__":448},"ideas\u002Fideas\u002Fthe-90-day-rule.md","The 90-Day Rule",{"type":8,"value":422,"toc":439},[423,426,429,432,435],[11,424,425],{},"I used to keep a list of \"active\" side projects. At one point it had eleven items. I was lying to myself. Most of those projects had not been touched in months.",[11,427,428],{},"Now I follow the 90-day rule. If I have not opened the codebase, written a word, or thought about it with any seriousness in 90 days, I move it to the archive. Not deleted. Archived. I can always bring it back.",[11,430,431],{},"This sounds harsh but it is actually freeing. Instead of feeling guilty about eleven projects, I feel focused on two. The rest are honestly labeled as what they are: things I tried that did not stick.",[11,433,434],{},"My archive folder is large. I am at peace with that.",[23,436,437],{},[26,438,115],{},{"title":62,"searchDepth":117,"depth":117,"links":440},[],"Learning","2026-03-15","If you have not touched a project in 90 days, it is dead. Accept it.",{},"\u002Fideas\u002Fthe-90-day-rule",{"title":420,"description":443},"ideas\u002Fthe-90-day-rule","lx4DpnKyQB7a772BdAgWBsFMNGpETrd1NdmBXVmcO9k",{"id":450,"title":451,"body":452,"cardSize":135,"category":410,"date":442,"description":496,"extension":128,"featured":129,"meta":497,"navigation":129,"path":498,"readingTime":132,"seo":499,"stem":500,"updated":135,"__hash__":501},"ideas\u002Fideas\u002Fthe-database-is-the-product.md","The Database Is the Product",{"type":8,"value":453,"toc":491},[454,457,460,463,467,470,474,477,481,484,487],[11,455,456],{},"I had a realization last week that seems obvious in hindsight: almost every successful internet business is just a database.",[11,458,459],{},"Google is a database of web pages with a search interface. Airbnb is a database of apartments. IMDB is a database of movies. Craigslist is a database of listings. LinkedIn is a database of professionals. Amazon started as a database of books.",[11,461,462],{},"The pattern is always the same. Someone decides to collect a specific type of information, organize it well, and put a good interface on top.",[15,464,466],{"id":465},"why-this-matters","Why This Matters",[11,468,469],{},"If you are trying to build a startup, you should think about what database you are building. Not what features you are adding, not what the UX looks like, not what framework you are using. What data are you collecting that nobody else has, and how are you organizing it?",[15,471,473],{"id":472},"the-moat-is-the-data","The Moat Is the Data",[11,475,476],{},"The interface can be copied in a weekend. The features can be replicated. But the database, if it is large enough and clean enough, becomes the moat. This is why Wikipedia is still the dominant encyclopedia despite having a terrible editing interface and confusing internal politics. The data is too good and too complete for anyone to replicate.",[15,478,480],{"id":479},"practical-implication","Practical Implication",[11,482,483],{},"If I were starting a company tomorrow, I would pick an information domain where the existing data is either (a) scattered across many sources, (b) trapped behind paywalls, or (c) poorly organized. Then I would spend 80% of my time on data collection and organization, and 20% on the interface.",[11,485,486],{},"The interface is what people see. But the database is what keeps them coming back.",[23,488,489],{},[26,490,115],{},{"title":62,"searchDepth":117,"depth":117,"links":492},[493,494,495],{"id":465,"depth":120,"text":466},{"id":472,"depth":120,"text":473},{"id":479,"depth":120,"text":480},"Most successful internet businesses are just well-curated databases with a good interface on top.",{},"\u002Fideas\u002Fthe-database-is-the-product",{"title":451,"description":496},"ideas\u002Fthe-database-is-the-product","okVPH_YnnBz0-eHoTj-EgF4oHyu9Cat9zB4hPPIvhMY",{"id":503,"title":504,"body":505,"cardSize":124,"category":410,"date":584,"description":585,"extension":128,"featured":129,"meta":586,"navigation":129,"path":587,"readingTime":588,"seo":589,"stem":590,"updated":135,"__hash__":591},"ideas\u002Fideas\u002Findia-needs-a-yc-but-different.md","India Needs a YC (But Different)",{"type":8,"value":506,"toc":580},[507,510,514,517,523,529,535,538,541,573,576],[11,508,509],{},"Every few months someone announces \"the Y Combinator of India.\" They copy the format: 3-month program, small check, demo day. Most of them quietly shut down within two years. Not because the idea is bad, but because they are trying to transplant a Silicon Valley model into soil that has very different nutrients.",[15,511,513],{"id":512},"what-is-different-about-india","What is different about India",[11,515,516],{},"The Indian startup ecosystem operates under constraints that YC founders rarely face:",[11,518,519,522],{},[89,520,521],{},"Capital efficiency matters more."," In the US, if your startup fails after spending $500K, that is considered a cheap lesson. In India, $500K is a life-changing amount of money. Indian founders cannot afford the same \"move fast and break things\" approach because the cost of failure is higher relative to their financial position.",[11,524,525,528],{},[89,526,527],{},"The market is layered."," India is not one market. A product that works in Bangalore might not work in Jaipur. Languages, payment habits, internet speeds, and cultural norms vary enormously. A three-month accelerator based in one city cannot teach you about all these layers.",[11,530,531,534],{},[89,532,533],{},"Family dynamics are real."," Many Indian founders are supporting parents, siblings, or extended family. The idea that you should \"quit your job and focus full-time\" assumes a safety net that does not exist for most people.",[15,536,537],{"id":311},"What would work",[11,539,540],{},"A YC-for-India would need to be different in specific ways:",[84,542,543,549,555,561,567],{},[26,544,545,548],{},[89,546,547],{},"Longer program."," Six months, not three. Indian markets take longer to validate because of the distribution complexity.",[26,550,551,554],{},[89,552,553],{},"Revenue focus from day one."," Not \"growth at all costs.\" Indian founders need to show their families (and themselves) that this is real.",[26,556,557,560],{},[89,558,559],{},"Regional chapters."," Not just Bangalore. Run chapters in 5 cities simultaneously, connected by video but rooted locally.",[26,562,563,566],{},[89,564,565],{},"Family onboarding."," This sounds unusual, but I have seen founders drop out because their parents did not understand what they were doing. A single session explaining the program to families would reduce dropout rates significantly.",[26,568,569,572],{},[89,570,571],{},"Smaller checks, faster."," Rs 25 lakh ($30K) deployed in a week, not months of due diligence for a seed check.",[11,574,575],{},"The founders are there. The ideas are there. The model just needs to respect the context.",[23,577,578],{},[26,579,115],{},{"title":62,"searchDepth":117,"depth":117,"links":581},[582,583],{"id":512,"depth":120,"text":513},{"id":311,"depth":120,"text":537},"2026-03-12","Why a copy-paste of Y Combinator would not work in India, and what would.",{},"\u002Fideas\u002Findia-needs-a-yc-but-different",7,{"title":504,"description":585},"ideas\u002Findia-needs-a-yc-but-different","7LbbZNO4F-ogUg_C_SNFeasj00FRU0nZKCZVquUY9t8",{"id":593,"title":594,"body":595,"cardSize":135,"category":272,"date":584,"description":612,"extension":128,"featured":240,"meta":613,"navigation":129,"path":614,"readingTime":120,"seo":615,"stem":616,"updated":135,"__hash__":617},"ideas\u002Fideas\u002Fshower-thought-apis.md","Every Company Should Have a Public API",{"type":8,"value":596,"toc":610},[597,600,603,606],[11,598,599],{},"Quick thought: every company with more than 10 employees should have a public API.",[11,601,602],{},"Not because developers will build things with it (though some will). But because having a public API forces you to think clearly about what your product actually does. If you cannot express your core value proposition as a set of API endpoints, you probably do not understand your own product well enough.",[11,604,605],{},"The discipline of writing API documentation is the discipline of clear thinking.",[23,607,608],{},[26,609,115],{},{"title":62,"searchDepth":117,"depth":117,"links":611},[],"A shower thought that turned into a conviction.",{},"\u002Fideas\u002Fshower-thought-apis",{"title":594,"description":612},"ideas\u002Fshower-thought-apis","tSQcgbw4qXFedhHY5deJ6ACdja-hLrJo-VJo0Kbwy9w",{"id":619,"title":620,"body":621,"cardSize":237,"category":441,"date":658,"description":659,"extension":128,"featured":240,"meta":660,"navigation":129,"path":661,"readingTime":117,"seo":662,"stem":663,"updated":135,"__hash__":664},"ideas\u002Fideas\u002Flearn-one-thing-per-quarter.md","Learn One Thing Per Quarter",{"type":8,"value":622,"toc":656},[623,626,629,632,646,649,652],[11,624,625],{},"I stopped doing \"learn X in a weekend\" sprints. They do not stick. I now pick one thing per quarter and actually use it in something real.",[11,627,628],{},"Q1 this year was Rust. Not a tutorial project, but rewriting a small CLI tool I actually use daily. It took three months and the code is probably not idiomatic, but I can read Rust now. I understand ownership. I can contribute to a Rust codebase without panicking.",[11,630,631],{},"The trick is:",[84,633,634,637,640,643],{},[26,635,636],{},"Pick something you are curious about (not something LinkedIn says is hot)",[26,638,639],{},"Build something small but real with it",[26,641,642],{},"Give it a full quarter (not a weekend)",[26,644,645],{},"Accept that your first attempt will be bad",[11,647,648],{},"Previous quarters: Docker (finally learned it properly instead of copying Dockerfiles from Stack Overflow), PostgreSQL internals (read the documentation cover to cover, not just the \"quick start\"), and CSS Grid (I know, I should have learned it years ago).",[11,650,651],{},"My queue for upcoming quarters: WebAssembly, basic electronics (Arduino), and maybe Urdu calligraphy (not everything has to be tech).",[23,653,654],{},[26,655,115],{},{"title":62,"searchDepth":117,"depth":117,"links":657},[],"2026-03-10","Not one course. Not one tutorial. One real thing, used in a real project.",{},"\u002Fideas\u002Flearn-one-thing-per-quarter",{"title":620,"description":659},"ideas\u002Flearn-one-thing-per-quarter","Yy3_VVxk7BHDLpllwCHjFUf1DtvJ2eG1GVnnbeMJ7KA",{"id":666,"title":667,"body":668,"cardSize":135,"category":441,"date":712,"description":713,"extension":128,"featured":129,"meta":714,"navigation":129,"path":715,"readingTime":588,"seo":716,"stem":717,"updated":135,"__hash__":718},"ideas\u002Fideas\u002Flearning-rust-at-40.md","Learning Rust at 40",{"type":8,"value":669,"toc":707},[670,673,677,680,683,687,690,694,697,700,703],[11,671,672],{},"I turned 40 last year and decided to learn Rust. Not because I needed it for work. Not because it was trendy (well, maybe a little because it was trendy). But because I had not felt like a complete beginner at anything in a long time, and I missed that feeling.",[15,674,676],{"id":675},"the-borrow-checker-humbles-you","The Borrow Checker Humbles You",[11,678,679],{},"Twenty years of programming experience counts for almost nothing when you are fighting the borrow checker. I have written production systems in Java, Python, JavaScript, and Go. None of that prepared me for Rust telling me, with the patience of a disappointed teacher, that I do not understand memory ownership.",[11,681,682],{},"The first week was genuinely frustrating. I could not write a simple linked list. Me. A person who has been writing code since 2004. Could not write a linked list. Because Rust said no.",[15,684,686],{"id":685},"why-it-was-worth-it","Why It Was Worth It",[11,688,689],{},"After three months, something shifted. I started thinking about ownership in all my other code too. When I write Python now, I catch myself thinking \"who owns this reference?\" before passing an object around. Rust rewired how I think about data.",[15,691,693],{"id":692},"the-real-lesson","The Real Lesson",[11,695,696],{},"The real lesson is not about Rust. It is about the value of being bad at something again. When you are experienced, you get comfortable. You know the patterns. You can build things on autopilot. And that comfort is dangerous because it means you stop learning.",[11,698,699],{},"Being a beginner again at 40 reminded me what it felt like at 20. The frustration is the same. But now I have enough experience to know that the frustration is temporary and the understanding that follows is permanent.",[11,701,702],{},"If you have been programming for a decade or more and you have not felt truly lost in a while, pick up something that makes you feel stupid. It is good for you.",[23,704,705],{},[26,706,115],{},{"title":62,"searchDepth":117,"depth":117,"links":708},[709,710,711],{"id":675,"depth":120,"text":676},{"id":685,"depth":120,"text":686},{"id":692,"depth":120,"text":693},"2026-03-08","Picking up a new systems language two decades into a career. It is humbling, frustrating, and exactly what I needed.",{},"\u002Fideas\u002Flearning-rust-at-40",{"title":667,"description":713},"ideas\u002Flearning-rust-at-40","XZGkGmTin2oUQPMPnE0TQZPRb_-B-lK9-eZTmU3BjxE",{"id":720,"title":721,"body":722,"cardSize":355,"category":125,"date":712,"description":745,"extension":128,"featured":240,"meta":746,"navigation":129,"path":747,"readingTime":120,"seo":748,"stem":749,"updated":135,"__hash__":750},"ideas\u002Fideas\u002Fthe-unbundling-of-email.md","The Unbundling of Email",{"type":8,"value":723,"toc":743},[724,727,730,733,736,739],[11,725,726],{},"Think about what email does: messaging, file transfer, task management, scheduling, newsletters, notifications, identity verification, and document signing.",[11,728,729],{},"Every single one of those is now a separate product. Slack for messaging. Dropbox for files. Asana for tasks. Calendly for scheduling. Substack for newsletters. Push notifications for alerts. OAuth for identity. DocuSign for signatures.",[11,731,732],{},"And yet we still use email for all of those things too. Email is the cockroach of the internet. You cannot kill it by building better alternatives, because email is not one thing. It is the default protocol for \"I need to send something to someone.\"",[11,734,735],{},"The startup idea here is not \"kill email\" (people have tried, people have failed). The idea is: what is the next feature of email that becomes its own product?",[11,737,738],{},"I think it is receipts. Every purchase confirmation, shipping notification, and return label sits in email. Someone will build a product that is just \"all your receipts, organized\" and it will be worth a billion dollars.",[23,740,741],{},[26,742,115],{},{"title":62,"searchDepth":117,"depth":117,"links":744},[],"Every feature of email is becoming its own startup.",{},"\u002Fideas\u002Fthe-unbundling-of-email",{"title":721,"description":745},"ideas\u002Fthe-unbundling-of-email","pC5NWwCY_HSZRwZJctmLyYWnJom3vfzvRS3C3ujigAE",{"id":752,"title":753,"body":754,"cardSize":237,"category":356,"date":780,"description":781,"extension":128,"featured":240,"meta":782,"navigation":129,"path":783,"readingTime":117,"seo":784,"stem":785,"updated":135,"__hash__":786},"ideas\u002Fideas\u002Fwhy-i-still-use-a-notebook.md","Ruminating on Why I Still Use a Paper Notebook",{"type":8,"value":755,"toc":778},[756,759,762,765,768,771,774],[11,757,758],{},"I have tried every note-taking app. Notion, Obsidian, Apple Notes, Bear, Roam Research, plain text files. I keep coming back to a cheap paper notebook from Muji.",[11,760,761],{},"The reason is not nostalgia. Paper forces me to think before I write. With a digital tool, I can type faster than I can think, which means I end up with a lot of words and not many ideas. With a pen, I have to choose my words because crossing things out is messy.",[11,763,764],{},"Paper also has no notifications. No links to click. No formatting options to fiddle with. It is just me and the thought.",[11,766,767],{},"My system is simple. One notebook at a time. Date at the top of each page. Write whatever. No organization system, no color coding, no fancy bullet journal layouts. When it is full, I flip through it once, tear out the pages with ideas worth keeping, and transfer those to a digital file. The rest gets recycled.",[11,769,770],{},"About 80% of what I write in notebooks is trash. But the 20% that survives the flip-through tends to be the real stuff. The ideas that passed the \"still interesting after two weeks\" test.",[11,772,773],{},"The digital tools are for storage. Paper is for thinking.",[23,775,776],{},[26,777,115],{},{"title":62,"searchDepth":117,"depth":117,"links":779},[],"2026-03-05","Digital tools are better for everything except thinking.",{},"\u002Fideas\u002Fwhy-i-still-use-a-notebook",{"title":753,"description":781},"ideas\u002Fwhy-i-still-use-a-notebook","L6dIdvdpoXLhysL5C9YTOGt6DqnySV39CsMb-Zhm_l0",{"id":788,"title":789,"body":790,"cardSize":135,"category":410,"date":833,"description":834,"extension":128,"featured":240,"meta":835,"navigation":129,"path":836,"readingTime":117,"seo":837,"stem":838,"updated":135,"__hash__":839},"ideas\u002Fideas\u002Fcoffee-shop-economics.md","The Economics of a Coffee Shop WiFi",{"type":8,"value":791,"toc":830},[792,795,798,801,805,811,817,823,826],[11,793,794],{},"I have been working from coffee shops in Bangalore for years and I keep wondering: how does the math work?",[11,796,797],{},"A single coffee costs 200 rupees. I sit for 3-4 hours. I use their electricity, their WiFi, their table, their air conditioning. Even if I buy a second coffee, there is no way that 400 rupees covers the cost of my occupation of that space for half a working day.",[11,799,800],{},"And yet coffee shops keep offering WiFi. Some even advertise it as a feature. Why?",[15,802,804],{"id":803},"three-theories","Three Theories",[11,806,807,810],{},[89,808,809],{},"Theory 1: I am the marketing."," A full coffee shop looks successful. An empty one looks like it is about to close. The laptops-and-headphones crowd fills seats during off-peak hours and makes the place look alive.",[11,812,813,816],{},[89,814,815],{},"Theory 2: The food margin."," Coffee has an 80%+ margin. That sandwich I eventually order has a 60% margin. The math works if enough laptop workers eventually order food.",[11,818,819,822],{},[89,820,821],{},"Theory 3: They are not optimizing for revenue per seat."," They are optimizing for a certain type of customer. The remote worker crowd brings in other remote workers, who bring in meetings, who bring in groups, who order more.",[11,824,825],{},"I do not know which theory is correct. Probably all three. But I keep thinking someone should build a proper economic model of this.",[23,827,828],{},[26,829,115],{},{"title":62,"searchDepth":117,"depth":117,"links":831},[832],{"id":803,"depth":120,"text":804},"2026-03-01","Why do coffee shops offer free WiFi when their customers stay for hours and buy one coffee?",{},"\u002Fideas\u002Fcoffee-shop-economics",{"title":789,"description":834},"ideas\u002Fcoffee-shop-economics","PjlWNUpQHSWOdl3dqT6AGYV7TVQ9Pv-7BACVcyXraNw",{"id":841,"title":842,"body":843,"cardSize":135,"category":125,"date":866,"description":867,"extension":128,"featured":240,"meta":868,"navigation":129,"path":869,"readingTime":120,"seo":870,"stem":871,"updated":135,"__hash__":872},"ideas\u002Fideas\u002Fgit-for-everything.md","Git for Everything",{"type":8,"value":844,"toc":864},[845,848,851,854,857,860],[11,846,847],{},"Shower thought: git was designed for source code, but the mental model works for any collaborative document that changes over time.",[11,849,850],{},"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.",[11,852,853],{},"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.",[11,855,856],{},"City planning should be in git. Zoning changes as commits. Public comments as issues. The master branch is the current city plan.",[11,858,859],{},"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.",[23,861,862],{},[26,863,115],{},{"title":62,"searchDepth":117,"depth":117,"links":865},[],"2026-02-20","What if we used version control for laws, recipes, and city planning?",{},"\u002Fideas\u002Fgit-for-everything",{"title":842,"description":867},"ideas\u002Fgit-for-everything","X_rrmtAQpnpZt6Sxo1rlw2KarLopWIXy51ddJIii04Y",1776214201857]