◉RORK LABJP
●GPT-6.1 SOL — Added to Rork's model menu (09-29) with Low, Medium and High effort; included on Pro and Max●SONNET 5.5 — Claude Sonnet 5.5 is selectable: strong at UI design and faster than Sonnet 5 (09-28)●SONNET 4.5 — Retires on the Claude API on 11/30, 27 days left. If your app calls it, check the migration target●SDK 58 — Moves to React Native 0.88. R8 is now on by default in Android release builds, and iOS prebuild generates a SceneDelegate●OBSERVE — EAS Observe now records native crashes too (SDK 57.0.21 or later, 10/07)●NEW — My App Open Ad Only Showed When the App…●GPT-6.1 SOL — Added to Rork's model menu (09-29) with Low, Medium and High effort; included on Pro and Max●SONNET 5.5 — Claude Sonnet 5.5 is selectable: strong at UI design and faster than Sonnet 5 (09-28)●SONNET 4.5 — Retires on the Claude API on 11/30, 27 days left. If your app calls it, check the migration target●SDK 58 — Moves to React Native 0.88. R8 is now on by default in Android release builds, and iOS prebuild generates a SceneDelegate●OBSERVE — EAS Observe now records native crashes too (SDK 57.0.21 or later, 10/07)●NEW — My App Open Ad Only Showed When the App…
MEMBERSHIP

メンバーシップ

Advanced guides with production-ready code

Thank you for visiting Rork Lab. We publish advanced guides daily with copy-paste ready code, benchmarks, and production design patterns — practical content we hope you'll find useful as the next step after our free articles.

  • ✦Unlimited access to all premium articles
  • ✦New advanced guides with code published daily
  • ✦Production-ready design patterns & best practices
PREMIUM ARTICLES

Premium Articles

499 exclusive articles
PREMIUM⬡ Dev Tools/2026-06-26Advanced

Import the User's Own Image From the Files App in a Rork App, Without the URL Going Stale

Pull images from the Files app or iCloud Drive and the URL you picked goes invalid moments later. Here is how expo-document-picker, security-scoped URLs, and a reliable copy into your sandbox actually work, with running code.

PREMIUM⬡ Dev Tools/2026-06-26Advanced

Keep Audio Playing in the Background and Add Lock Screen Controls in a Rork App

How to make a Rork-generated Expo app keep playing music or healing sounds in the background and expose lock screen and Control Center controls, with working expo-audio code and the platform-specific gotchas.

PREMIUM⬡ Dev Tools/2026-06-25Advanced

When Push Notifications Reach Only Some Users — A Delivery-Reliability and Diagnosis Design for Rork (Expo) Apps

A design for diagnosing why push notifications reach only some users in a Rork-generated Expo app, by splitting send-to-display into stages and measuring delivery to close the gap. Covers stale-token cleanup, recording APNs/FCM failure codes, priority and message type, and a per-user triage procedure, with implementation.

PREMIUM◇ App Dev/2026-06-25Advanced

Why Reinstalling Users Don't Return to 'First Run' — A First-Launch and State-Persistence Design for Rork (Expo) Apps

How to fix broken first-launch detection, onboarding, and free-trial state on reinstall in a Rork-generated Expo app, by treating it as an asymmetry in storage persistence. Covers what survives uninstall on iOS vs Android, separating install and version axes, and server-authoritative entitlements, with implementation.

PREMIUM◇ App Dev/2026-06-25Advanced

Why Untranslated Strings Leak to Production Every Time You Add a Language — A Catalog and Gap-Detection Design for Rork (Expo) Apps

A design for stopping untranslated strings from leaking into production after you localize a Rork-generated Expo app. Covers a single source-of-truth catalog, CI-based missing/extra key detection, explicit fallback chains, plurals, and pseudolocalization for layout — with implementation.

PREMIUM⬡ Dev Tools/2026-06-25Advanced

Why Your 9 AM Reminder Stops Arriving Abroad — Making Expo Local Notifications Survive Time Zones and DST

Daily reminders built with Rork (Expo) can drift to the wrong local time when users travel or DST flips. Here is the timeInterval trap, and a design that reschedules against local wall-clock time, with working code.

PREMIUM◇ App Dev/2026-06-25Advanced

Three Builds on One iPhone: Environment Separation for Rork (Expo) Apps

Split a Rork-generated Expo app into dev, staging, and production builds that live side by side on one device. A hands-on walkthrough of dynamic app.config.ts, eas.json profiles, and isolating notifications, analytics, and billing per environment.

PREMIUM⬡ Dev Tools/2026-06-25Advanced

Why Paying Members See a Paywall in Airplane Mode — Keeping RevenueCat Entitlements Alive Offline

Open the app on a weak connection and a paying subscriber sees a paywall flash for a second. Here is how RevenueCat's customerInfo wavers on an offline launch, and a cache design that keeps entitlements valid with a trust window — written as working code for an Expo app.

PREMIUM⬡ Dev Tools/2026-06-25Advanced

Keeping Your Rork App's Expo SDK Upgradable Year After Year — Release Trains and Regression Safety Nets

A maintenance design for keeping Rork-generated Expo apps running through yearly Expo SDK upgrades without breakage. Covers release-train cadence, dependency pinning, regression safety nets, and splitting OTA from store delivery, with real examples.

PREMIUM⬡ Dev Tools/2026-06-25Advanced

When an Image-Heavy Rork App Quietly Bloats Its Cache and Dies on Memory — Field Notes on Measuring and Capping

In a Rork app where images are the product, expo-image's disk cache and resident memory creep up over a session and surface as OOM crashes. Here's how I measured the bloat, where I set caps, and what I trimmed on the delivery side — with working code, in the order that actually helped.

PREMIUM◇ App Dev/2026-06-24Intermediate

Three Implementations You Always Face with Next.js and Supabase — RLS, State, and Real-Time

Past building the foundation of a web app lie three things you always get stuck on — DB access control (RLS), screen state management, and real-time updates — explained at the implementation level with Next.js and Supabase code. Down to production pitfalls like memory leaks from forgotten unsubscribes and how auth ties into RLS.

PREMIUM⬡ Dev Tools/2026-06-24Advanced

Fixing Stutter When a Rork Max SwiftUI Image Grid Scrolls

Measure why a Rork Max SwiftUI image grid stutters while scrolling, then fix it with ImageIO downsampling, off-main-thread decoding, and stable cells to cut real-device hitches.

PREMIUM⬡ Dev Tools/2026-06-24Advanced

Audio Apps That Survive Calls, Unplugged Headphones, and Other Apps Taking Over

How to handle AVAudioSession interruption and route-change notifications correctly so playback survives calls and headphone unplugs, with working Swift code.

PREMIUM⬡ Dev Tools/2026-06-24Advanced

Quietly Dialing Back Heavy Work When the Device Gets Hot or Enters Low Power Mode

How to watch ProcessInfo's thermalState and Low Power Mode and degrade heavy work in stages when the device is hot or the battery is low, with working Swift code.

PREMIUM⬡ Dev Tools/2026-06-24Advanced

When EAS Update Ships but the Bug Won't Die — Why OTA Stalls Silently, and How I Operate Around It

EAS Update can succeed and still fail to reach a slice of your users. These are field notes on runtimeVersion drift, updates that publish but never get adopted, and choosing the right rollback — with the instrumentation that actually helped on my Rork apps.

PREMIUM◉ AI Models/2026-06-24Intermediate

Pushing Rork Max's AI Beyond Vibe Coding — Patterns That Actually Improve Implementation Quality

A deep-dive on using Rork Max as an implementation partner: prompt patterns, context management, choosing between plain Rork and Rork Max, building without burning credits, and verifying AI-written native code before App Store submission — drawn from solo indie experience.

PREMIUM⬡ Dev Tools/2026-06-24Advanced

Building a Breathing-Paced Haptic for a Meditation App with CoreHaptics

Canned expo-haptics buzzes can't produce the swell of a breath. Here is how to call CoreHaptics continuous events and parameter curves from an Expo native module to build a haptic synced to 4-7-8 breathing, with working Swift and TypeScript code.

PREMIUM◉ AI Models/2026-06-24Advanced

Receiving On-Device AI Output as Typed Data with Foundation Models Guided Generation

How to receive Foundation Models output as typed Swift structs instead of free text, with working code for Guided Generation and Tool Calling on-device.

PREMIUM⬡ Dev Tools/2026-06-23Advanced

The Post You Wrote Offline Shows Up Twice — Designing a Send Outbox That Survives Retries

Persisting a queue and replaying it isn't enough — a lost response turns into a duplicate write. Here's a send outbox with idempotency keys, temp-to-server ID remapping, and poison-message quarantine, in working TypeScript.

PREMIUM◉ AI Models/2026-06-23Advanced

On-Device Translation in a Rork Max App with iOS 18 — Free, Offline, Multilingual

Add free, offline, real-time translation to a Rork Max Swift app using the iOS 18 Translation framework. Covers checking language availability, batch translation, and avoiding empty results — all with working Swift code.

PREMIUM⬡ Dev Tools/2026-06-23Intermediate

What Your App Should Do When Someone Turns On Reduce Motion — A Motion-Respecting Layer in Expo

When a user enables iOS Reduce Motion or Android Remove Animations, how should your app respond? Combine AccessibilityInfo with Reanimated's ReduceMotion to replace heavy motion with a calmer alternative instead of simply switching it off.

PREMIUM⬡ Dev Tools/2026-06-23Advanced

DAU Went Up but Retention Didn't — Rebuilding Gamification That Actually Sticks in Rork Apps

Points, badges, and leaderboards lift DAU, but retention is a different story. Field notes on a server-authoritative point ledger, streaks that forgive, and leaderboards that don't crush newcomers — with working code for Rork apps.

PREMIUM⬡ Dev Tools/2026-06-23Intermediate

Why Your Prices Show as “¥1234” on Some Phones — A Formatting Layer That Doesn't Trust Intl Alone in Expo

Same code, yet one device shows “¥1,480” and another “¥1480.” In Expo / Hermes, Intl leans on each device's locale data, so output can drift by OS and engine. Here is a resilient formatting layer that centralizes currency, number, date, and timezone handling and falls back gracefully where Intl is incomplete — with working code.

PREMIUM◇ App Dev/2026-06-23Intermediate

Why Wallpapers Look Dull on Device: Taming Display P3 in the Delivery Pipeline

The same wallpaper looked dull once set on device. The culprit was a mix-up between wide-gamut Display P3 and sRGB. Beyond embedding profiles, here is how to tell whether the pixels are truly wide-gamut, a pre-delivery gate script, and the Android wide-color story, across six wallpaper apps.

PREMIUM⬡ Dev Tools/2026-06-23Advanced

The Private Screen That Lingers in the App Switcher — Hiding the Snapshot iOS Takes the Moment You Background Your App

When you send a React Native app generated by Rork to the background, iOS photographs the current screen for the App Switcher and writes it to disk. Journals and personal input screens linger there in plain sight. This walks through the iOS privacy overlay (why inactive, not background), Android's FLAG_SECURE, scoping it to sensitive screens only, and screenshot detection — all in working code.

PREMIUM⬡ Dev Tools/2026-06-22Advanced

When a Poisoned Cache Crashes Your App on Every Launch — Designing a Safe-Mode Boot Your Users Can Escape On Their Own

When a persisted cache goes bad and the app crashes at the same spot on every launch, the only option left to the user is to reinstall. This article designs a safe-mode boot for Expo (React Native): the app counts its own early crashes, confirms a launch only once it becomes interactive, and resets just the dangerous state in graduated steps.

PREMIUM⬡ Dev Tools/2026-06-22Advanced

Your Daily Reminder Stops Firing After a Couple of Weeks — iOS's Invisible 64-Notification Cap

When a daily reminder built with Rork (Expo) goes silent after a while, the cause is usually iOS's 64 pending-notification limit. Design a repeating calendar trigger for fixed messages and a rolling reschedule for daily-changing content, with working code that survives DST and multiple reminders.

PREMIUM⬡ Dev Tools/2026-06-22Advanced

Build a Toast System in Your Rork App That Survives Overlaps, Screen Readers, and Notches

When you add toast notifications to a React Native app generated by Rork, the naive version breaks in three places: two toasts overlap, screen readers stay silent, and the text hides under the notch or home indicator. This walks through a root-level queue, animations decoupled from your app tree, AccessibilityInfo announcements, and safe-area placement — all in working code.

PREMIUM⬡ Dev Tools/2026-06-22Advanced

Serving Both Plain Rork and Rork Max From One Backend — Designing an API Response Contract That Never Breaks Old Binaries

When plain Rork (React Native / Expo) and Rork Max (native Swift) both call the same Cloudflare Workers backend, the whole design centers on not breaking old binaries you cannot force-update. Wrap responses in an envelope, evolve them additively, absorb client differences with capability flags, and retire old contracts safely — shown in code.

PREMIUM⟐ Business/2026-06-22Advanced

A Wallpaper App's Real Work Starts After Launch — Content, Retention, and Revenue Notes from Running One on Rork

A wallpaper app is decided less by its launch and more by how you tend it afterward. Building on a Rork implementation, here are field notes on scheduled publishing that keeps content fresh, onboarding that survives the first week, and a revenue setup whose per-download return doesn't thin out over time.