← Binderdex dev log

2026-07-19

Retired the auto-shutter the same day it shipped

mobileproductsolo-founder

Retired the auto-shutter the same day it shipped

The Binderdex scanner had an auto-capture problem I kept tuning, and by midafternoon I had the Sentry receipts. One iPhone session told the whole story:

872  frame callbacks
730  OCR blocks
110  in-frame text samples
  0  collector-number reads

The 720p preview reliably saw the card's big text. The tiny collector number, the actual identifier, stayed below the dependable recognition threshold. No timer tweak was fixing that.

What I tried before giving up

Three commits sharpened the trigger. Stable card presence before lock. Full-card framing required before the 300ms hold. Then native geometry: Apple Vision on iOS, OpenCV luminance contours on Android, one tracked quadrilateral whose color reflects alignment. Synthetic release gates hit 100% acquisition, 0% premature capture, 200ms safe-to-ready p95. On paper it was world-class. On a real phone it wasn't. The pipeline proved liveness but never trustworthy capture.

The retire

I ripped the auto-shutter path out and made deliberate phone capture the primary interaction: one Expo Camera surface, a neutral full-card guide, concise whole-card/glare/sharpness coaching, an accessible light toggle, a labeled Photos fallback, a centered shutter. Readiness gating still lights up when the card is framed well; the human still taps.

Here's the part I want to remember: the native detector packages stay in the tree, dormant, for a separate binary-cleanup milestone. Retiring the production route doesn't mean deleting the work. The OTA-safe JS layer stops depending on it, and I keep the option open for a future binary where native capture earns its place.

The transferable bit

When a feature's reliability ceiling is structural (the preview stream cannot see the thing you need to identify), more tuning is a trap. The signal was in the counters all along: 110 text samples, zero usable reads. I should have read that as the verdict instead of the prompt to tune harder.

this is the build log of binderdex · www.binderdex.com · all entries · essays