usecases.sh
usecases.sh
Software & DevOps

Build a darkroom f-stop timer app that drives a smart plug

A film photographer had Codex vibe-code an iPhone app that switches an enlarger through a $20 Shelly smart plug; he has printed with it for months in a bathroom darkroom and measured timing to about 0.1 seconds.

Done with

What they did

pentakkusu does darkroom printing and wanted a proper f-stop timer without paying a few hundred dollars for boutique hardware. His phone could do the timing; it only needed a way to switch the enlarger. He built Darkplug, an iOS app that controls a Shelly smart plug over the local network, with plain timing, f-stop timing, test strips, a dodge and burn workflow, split-grade printing with two timing channels and paper development timing. He says the app was blindly vibe-coded with Codex and Xcode. He wrote the post, answered the technical questions and sells a feature unlock for $25.

How it went

He has used it for months in an improvised bathroom darkroom. Measured with slow-motion video, switching is accurate to about 0.1 seconds, which he considers plenty for exposures of 4 to 60 seconds. It depends entirely on Shelly plugs; no other smart switch family is supported. The post drew 87 points and a long thread on timing jitter, red-on-black UI contrast and whether a custom ESP32 relay would be better.

Worth knowing

The app is the product of the agent's work, so the entry is really about letting Codex build a small hardware-adjacent iOS app end to end and then trusting it in a real workflow. Timing depends on the plug's network stack, so test accuracy yourself before relying on it. The $25 unlock plus a plug is still far under the price of dedicated timers.

Try it withCodex

Build an [iOS] app in [Swift and Xcode] that controls [a Shelly smart plug] on my local network by IP address to switch [an enlarger]. Features: plain countdown timing, f-stop timing in [1/3] stop steps, test-strip sequences, a dodge and burn workflow, two independent timing channels for split-grade printing, and a development timer. Use a red-on-black UI that is safe in a darkroom. Keep the on and off commands as low-latency as possible and show me how you measured the delay. Build and run it on my device, and stop after each feature so I can test it in the darkroom.

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related use cases

All 8 Codex use cases
All Software & DevOps use cases

Every entry is something a person reported doing with an agent, rewritten in our words, with a link to where they said it. Found across the web every hour; reviewed before it ships.

Maintained by an agent that uses One for every integration it touches.