[{"data":1,"prerenderedAt":180},["ShallowReactive",2],{"page-i-wish-there-was-an-app-for-that":3,"navigation":85},{"id":4,"title":5,"body":6,"date":71,"description":72,"draft":73,"extension":74,"hideYear":73,"meta":75,"navigation":80,"path":81,"readingTime":68,"seo":82,"stem":83,"__hash__":84},"projects/projects/i-wish-there-was-an-app-for-that.md","I wish there was an app for...",{"type":7,"value":8,"toc":67},"minimark",[9,18,34,37,48,51,59,64],[10,11,12],"p",{},[13,14],"img",{":sizes":15,"alt":5,"format":16,"src":17},"400px sm:800px","webp","img/apps/iwishtherewas.jpeg",[10,19,20,21,25,26],{},"I’ve always collected ideas for new services in my notes. I have some good ideas, and lots of terrible ideas. But I've found that the ones I build are usually the ones that catch me at the right time. When I have just enough time to think and start tinkering. This was an idea (",[22,23,24],"em",{},"about ideas",") that I built in a matter of hours: ",[27,28,33],"a",{"href":29,"rel":30,"target":32},"https://iwtw.nicmulvaney.com/",[31],"nofollow","_blank","iwishtherewas.app",[10,35,36],{},"It's a simple Lambda function that is cronned every few minutes, using the Twitter API to search for:",[38,39,45],"pre",{"className":40,"code":42,"language":43,"meta":44},[41],"language-text","\"wish there was an app\" -is:retweet OR \"I need an app that\" -is:retweet OR \"Is there an app that\" -is:retweet OR \"I wish there was a service that\" -is:retweet OR \"I want an app\" -is:retweet OR \"Can someone make an app\" -is:retweet\n","text","",[46,47,42],"code",{"__ignoreMap":44},[10,49,50],{},"You can type this in the Twitter search box and see the results for yourself.",[10,52,53,54],{},"The results are written to a JSON file on a public S3 bucket and the website loads this file directly in the browser. No database, no search or categorisation. It was just a fun little project that spawned a great ",[27,55,58],{"href":56,"rel":57},"https://news.ycombinator.com/item?id=26741611",[31],"discussion on Hacker News",[60,61,63],"h2",{"id":62},"update-08-june-2023","Update 08 June 2023",[10,65,66],{},"This project has ended due to recent Twitter API changes that would cost me $5000/mo. Thanks Elon! I'm letting the domain name expire and have updated the link in this article to a static snapshot.",{"title":44,"searchDepth":68,"depth":68,"links":69},2,[70],{"id":62,"depth":68,"text":63},"2021-04-08","Hunting for app ideas on Twitter with a simple Lambda function.",false,"md",{"tags":76,"related_posts":78},[77],"projects",[79],"the-yes-transaction",true,"/projects/i-wish-there-was-an-app-for-that",{"title":5,"description":72},"projects/i-wish-there-was-an-app-for-that","MA_H_5GW9OvgWYXeaNKUxlf8XP51FDvC0thyAXrmVIc",[86],{"title":87,"path":88,"stem":89,"children":90,"page":73},"Articles","/articles","articles",[91,97,103,109,115,121,127,133,139,145,151,157,163,169,174],{"title":92,"path":93,"stem":94,"description":95,"date":96},"Still haven't found what you're looking for?","/articles/ai-search","articles/ai-search","AI-powered search is transforming web search.","2024-10-31",{"title":98,"path":99,"stem":100,"description":101,"date":102},"Big Emoji","/articles/big-emoji","articles/big-emoji","Building an app for my kids.","2024-06-23",{"title":104,"path":105,"stem":106,"description":107,"date":108},"It probably won’t be you","/articles/it-probably-wont-be-you","articles/it-probably-wont-be-you","An interactive exploration of our lottery instincts.","2024-06-11",{"title":110,"path":111,"stem":112,"description":113,"date":114},"My memory is shot","/articles/my-memory-is-shot","articles/my-memory-is-shot","Discovering the link between writing and memory.","2024-04-28",{"title":116,"path":117,"stem":118,"description":119,"date":120},"Quotes","/articles/quotes","articles/quotes","A collection of quotes I've heard and written down at some point in my life.","2024-03-29",{"title":122,"path":123,"stem":124,"description":125,"date":126},"TikTok goes your clock","/articles/tiktok-goes-your-clock","articles/tiktok-goes-your-clock","What I learned from quitting TikTok","2024-03-26",{"title":128,"path":129,"stem":130,"description":131,"date":132},"User testing fail","/articles/user-testing-fail","articles/user-testing-fail","Attempting to think like a kid when designing a kids app.","2024-03-20",{"title":134,"path":135,"stem":136,"description":137,"date":138},"George Harrison's hands","/articles/george-harrisons-hands","articles/george-harrisons-hands","You can replicate the setup, but not the experience.","2023-01-17",{"title":140,"path":141,"stem":142,"description":143,"date":144},"Things I learned in 2022","/articles/things-i-learned-in-2022","articles/things-i-learned-in-2022","Aside from all the emergence of AI.","2022-12-20",{"title":146,"path":147,"stem":148,"description":149,"date":150},"Counting unique visitors without using cookies, UIDs or fingerprinting.","/articles/cookieless-unique-visitor-counts","articles/cookieless-unique-visitor-counts","on withcabin.com","2022-11-30",{"title":152,"path":153,"stem":154,"description":155,"date":156},"Hang up.","/articles/hang-up","articles/hang-up","Steps for for avoiding scam calls.","2022-05-06",{"title":158,"path":159,"stem":160,"description":161,"date":162},"The “yes” transaction","/articles/yes","articles/yes","Why my contact lens service is my favourite transaction.","2022-01-04",{"title":164,"path":165,"stem":166,"description":167,"date":168},"One line of code","/articles/one-line-of-code","articles/one-line-of-code","How I built an API for the London 2012 Olympics with one line of code.","2021-05-11",{"title":170,"path":171,"stem":172,"description":173,"date":168},"The potential energy savings of deprecating Cloudflare's cfduid cookie.","/articles/the-deprecated-cookie","articles/the-deprecated-cookie","How removing a tiny cookie can have a big impact on carbon emissions.",{"title":175,"path":176,"stem":177,"description":178,"date":179},"Never launching","/articles/never-launching-products","articles/never-launching-products","It's not just about the launch, it's about the process.","2021-04-09",1772188378504]