[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"branding":3,"analytics":7,"article-a-smart-plug-and-an-iphone-become-a-darkroom-timer":10,"sections":35},{"siteName":4,"siteTagline":5,"publisherName":4,"contactEmail":6},"The Revision","Tech news, decoded.","editor@therevision.news",{"gaMeasurementId":8,"adsenseClientId":9},"G-ZW2MV82GYR","ca-pub-8533917693782264",{"article":11},{"id":12,"slug":13,"title":14,"dek":15,"body_md":16,"tags_json":17,"published_at":18,"created_at":19,"updated_at":20,"status":21,"review_note":22,"review_notes":23,"image_url":22,"persona_id":22,"persona_name":22,"section":24,"tags":25,"sources":30,"feedback":34,"feedback_at":22,"cost_usd":34,"total_tokens":34},10393,"a-smart-plug-and-an-iphone-become-a-darkroom-timer","A Smart Plug and an iPhone Become a Darkroom Timer","A photographer swapped a commercial darkroom timer costing hundreds of dollars for a $20 smart plug and some AI-assisted iPhone code.","A darkroom photographer built his own f-stop timer by wiring an iPhone app to a $20 smart plug.\n\nThe tool, called Darkplug, pairs an iPhone app with a cheap smart plug that flips an enlarger on and off over the local network. It covers the core features of commercial f-stop timers: standard and f-stop timing, test strips, a dodge-and-burn workflow, split-grade printing with two timing channels, and paper development timing. The developer, who prints film in a converted bathroom darkroom, has been using it for several months. He built the app with Codex and Xcode, and says outright that it was \"vibe coded\" rather than carefully engineered.\n\nDedicated f-stop timers from darkroom suppliers can run into the hundreds of dollars, a real barrier for anyone experimenting with film printing on a budget. This project shows that a phone most people already own, combined with ordinary smart-home hardware, can match that functionality for the price of a fast-food meal. It is also a small, concrete example of AI coding tools letting hobbyists build niche software that nobody was ever going to make commercially.\n\nWhether a vibe-coded app survives contact with actual darkroom chemicals is the photographer's problem, not ours. But at $20, it is a cheap way to find out.","[\"photography\",\"diy\",\"smart-home\",\"ai-coding\"]","2026-10-06T13:58:07.000Z","2026-10-07T03:31:09.153Z","2026-10-07T03:31:12.835Z","published",null,[],"software",[26,27,28,29],"photography","diy","smart-home","ai-coding",[31],{"name":32,"url":33},"Hacker News","https:\u002F\u002Fpeterszentkiralyi.eu\u002Fdarkplug\u002F",0,{"sections":36},[37,42,47,52,57,62,67,72,77,81,86,91,96,101],{"name":38,"slug":39,"count":40,"latest_published_at":41},"AI","ai",6524,"2026-10-08T14:28:03.000Z",{"name":43,"slug":44,"count":45,"latest_published_at":46},"Security","security",918,"2026-10-08T14:20:00.000Z",{"name":48,"slug":49,"count":50,"latest_published_at":51},"Policy","policy",475,"2026-10-08T14:04:42.000Z",{"name":53,"slug":54,"count":55,"latest_published_at":56},"Deals","deals",465,"2026-10-08T14:36:55.000Z",{"name":58,"slug":59,"count":60,"latest_published_at":61},"Hardware","hardware",225,"2026-10-08T13:10:18.000Z",{"name":63,"slug":64,"count":65,"latest_published_at":66},"Science","science",187,"2026-10-07T04:00:00.000Z",{"name":68,"slug":69,"count":70,"latest_published_at":71},"Consumer Tech","consumer-tech",178,"2026-10-08T14:16:37.000Z",{"name":73,"slug":74,"count":75,"latest_published_at":76},"Startups","startups",115,"2026-10-08T14:16:56.000Z",{"name":78,"slug":24,"count":79,"latest_published_at":80},"Software",113,"2026-10-07T18:10:00.000Z",{"name":82,"slug":83,"count":84,"latest_published_at":85},"Dev Tools","dev-tools",105,"2026-10-07T16:59:11.000Z",{"name":87,"slug":88,"count":89,"latest_published_at":90},"General","general",62,"2026-10-08T14:00:00.000Z",{"name":92,"slug":93,"count":94,"latest_published_at":95},"Gaming","gaming",56,"2026-10-07T12:00:00.000Z",{"name":97,"slug":98,"count":99,"latest_published_at":100},"Reviews","reviews",34,"2026-10-08T14:00:22.000Z",{"name":102,"slug":103,"count":104,"latest_published_at":105},"How-To","how-to",8,"2026-10-05T09:00:00.000Z"]