koinophobia.dev
All products

Kinetic · spoken out loud

Trendi

The gap between having an idea and pressing record.

Invite / beta onlyAvailable to internal testers

Build 118 is on TestFlight and installed internally. No external testers yet

Verified 2026-07-20 · 3 sources
Build 118 uploaded, processed, and installed from TestFlight
TestFlight app page screenshot showing Version 0.1.0 (118), release date Jul 19 2026, 90-day expiry, with an Open button
Builds 114–119 exist as archives
~/Library/Developer/Xcode/Archives/2026-07-{12,17,19}/Trendi-0.1.0-1*.xcarchive
The data-isolation gate is incomplete
PENDING-beta-user-handoff.md — “Status: PENDING — User B unavailable”, cross-user rows all read “Not run”

The human problem

Most creators don't run out of ideas. They stall in the ninety seconds between having one and pressing record, because a thought in your head is not the same thing as words you can say on camera. I watched people abandon good ideas at exactly that gap, including me.

The thesis

Nobody needs another script generator. They need the specific sentence to open with. A coach in your pocket, not a script mill.

Where it actually stands

  • An iOS app in SwiftUI. You type the messy thought; it hands back hooks, a recordable script, a caption, and a simple shot plan.
  • Build 118 was uploaded to App Store Connect, imported clean, and is installed from TestFlight on my own device. That makes it available to internal testers — which today means me.
  • Build 119 already exists: an isolation-hardened release candidate, archived and validated. It has never been uploaded, and its three commits exist only on this machine.
  • The clean-state data-isolation gate is unfinished. The User A leg passed all seventeen steps it could run; step eighteen needed a second, genuinely different Apple account on the test phone, and there wasn't one. No cross-user conclusion is possible until that runs.
  • The newer generation pipeline is still switched off — builds 117, 118 and 119 all ship with the V1 client.

Decisions and tradeoffs

Turned the newer generation pipeline back off before shipping.

V2 wrote better copy and broke written-mode, leaked a default that assumed one platform, and rejected legitimate stories at the claims gate. A better sentence isn't worth a worse product.

Refused to call 118 the internal release candidate.

It's uploaded, it's installed, and it still isn't signed off, because the cross-user half of the isolation test never ran. An untested isolation boundary is exactly the kind of thing that looks fine until it very much isn't.

Kept it iOS-only and unpublished.

It is easier to learn from ten creators who can reach me than from a public listing I can't support.

What building it taught me

Shipping and delivering are different verbs, and I learned it the expensive way — with a finished build sitting behind an account permission for days. What I'd add now is that finishing the upload didn't finish the job either: 118 is in TestFlight and still isn't cleared, because the last gate needs a second person, not more code.

What isn't true yet

  • Not on the App Store, and not submitted for review.
  • No external testers. The only device it has ever run on through TestFlight is mine.
  • Data isolation between two users is unproven — the second half of that test has never been run.
  • Build 119, the isolation-hardened candidate, is not uploaded and not backed up anywhere but this Mac.