Adding image paste with expo-paste-input, and moving the disappearing file:// URIs out of cache
How to let users paste images and GIFs into a chat input with expo-paste-input. The URIs that onPaste hands you are temporary files that can vanish before the user hits send. Here is the relocation code and the order I verify it on real devices.
After the Google Play deadline: which dormant Android apps to raise, and which to leave at 35
Apps you have stopped updating are governed by a different bar than apps you still ship. Here is how to inventory effective targetSdk across your builds and decide which apps to raise, hold, or retire.
After Bumping targetSdk to 36, Which Part of Your Dependencies Should You Actually Read
I opened six real dependency AARs and counted what they contribute to my manifest. Not one declares targetSdkVersion, and twelve permissions arrive that I never wrote. Here is what to check before you submit.
The Remote Config keys you add after your release path closes are invisible to the build already on devices
A record of recounting what I can still change remotely before my release path closes. A key you add in the console does nothing unless a build that reads it is already on devices. Which switches to ship in the last build, and a shared-defaults bug I measured.
I Split Rork and Claude Code by Who Owns the Build Environment
How to decide between Rork and a terminal coding agent using data from your own repository instead of impressions of generated code. Includes a script that counts which layer your maintenance work lands in, and a check that catches native settings silently disappearing on regeneration.
My chart broke on day one, not at scale
A line chart that vanished for anyone with only a few days of data. The cause was a zero-height Y axis turning coordinates into NaN. Here is the measured behavior and the small normalization layer that fixed it.
TestFlight External Testing or Phased Release: Where a Solo Developer's Time Actually Pays Off
When you ship a Rork-built app to other people, you can recruit external testers or let a phased release absorb the risk. Here is how I split my limited time between the two, based on where distribution actually stalls and which three areas still deserve pre-release checks.
Four Countries, Not the World: Checking Which of My Six Apps the September 30 Deadline Actually Touches
Android developer verification goes live on September 30, 2026 in Brazil, Indonesia, Singapore, and Thailand. Here's how to decide from your own install data whether that date is urgent for you, and what actually blocks indie developers.
The same wallpaper appeared twice in my catalog — measuring perceptual hash thresholds across 324 images
Four approaches to image catalog deduplication measured end to end: SHA-256, dHash, a hue signature, and a block signature. dHash alone scored 0.9% precision. Here is why perceptual hashes collapse on smooth images, and how the ground truth turned out to be the thing that was wrong.
Sunsetting an App Well — Designing the Path from Update Freeze to Full Shutdown
What to do with an app whose revenue no longer covers its server bill. A three-stage decision table, a CDN-based sunset flag with TypeScript implementation, a data export path, and the practical order for winding down auto-renewable subscriptions.
When Rork Max's Two-Click Submit Stalls, Tell Which Layer Broke
Rork Max's one-click install and two-click submit fold the complexity of iOS shipping into four hidden layers. When the abstraction leaks and your submission stalls, this map helps you tell which layer failed and fix it yourself.
Your AR Furniture Is Gone by Morning — Persisting Placements with ARWorldMap
AR apps generated by Rork Max lose every placed object on relaunch. Here is the design that fixes it: when to save an ARWorldMap, how to encode custom anchors, how to handle the relocalization wait, and what to do when relocalization simply never lands.