All Articles
Adding SwiftData to a SwiftUI App Generated by Rork Max
Rork Max can produce polished SwiftUI screens, but persistence often stops at @State. Here is how I layer SwiftData onto generated code: model design, wiring the container to views, and a schema migration pattern that survives shipping.
Keeping Login Alive in a Rork-Built Expo App — Preventing Token-Refresh Races with Single-Flight
Add login to the Expo app Rork generates and it works at first, but in production the 'I got logged out on my own' reports creep in. Most are token-refresh races. This covers a reliability design that single-flights refresh, stores tokens safely, and handles expiry correctly.
Managing Store Metadata as Code with the App Store Connect API — Turning Manual Edits into a Monthly System
As the apps you ship with Rork pile up, the time spent hand-editing store descriptions and prices stops being negligible. This walks through managing metadata as code with the App Store Connect API and rolling it out across a dozen apps, including the authentication pitfalls.
Building a Room-Measuring App with Rork Max and RoomPlan — Absorbing Scan Variance by Design
Now that Rork Max generates native Swift, a LiDAR-based RoomPlan scanning app is a realistic project for an indie developer. Scan results drift depending on device and how you hold it. This walks through how to absorb that drift in your app design and export stable dimensions.
Designing Apps That Keep Working When the Signal Drops — Optimistic Updates and Resolving Conflicts on Reconnect
Make the Expo apps you build with Rork keep responding even when the signal drops in a subway or elevator. We assemble optimistic updates that move the screen first, and conflict resolution that reconciles when the connection returns, in working code.
Exposing Your Rork Max App to Siri and Shortcuts with App Intents
How to add App Intents to a Swift app generated by Rork Max so Siri and Shortcuts can invoke your actions, from registering an AppShortcut to the production gotchas, with real code.
The Users You Cut Off as Churned Were Still Willing to Pay — Implementing Grace Periods That Keep Access Alive
A failed renewal is not a cancellation. If you revoke access during the grace period, you throw away recoverable revenue. Here is how to tell grace, billing retry, account hold, and real churn apart in a Rork (Expo) app, keep access during grace, and guide users back.
Running a Neon + Drizzle Backend for Your Rork App in Production — Notes on Edge Connections, Zero-Downtime Migrations, and Type-Safe Queries
After wiring Neon Serverless Postgres and Drizzle ORM into a Rork app's backend, the friction shows up in production. These are implementation notes on choosing an edge connection model, migrating without locking tables, and designing type-safe queries that don't balloon into N+1.
Adding NFC Tag Reading to a Rork Max App with Core NFC
How to add Core NFC to a Swift app generated by Rork Max and read NDEF tags, covering the entitlement and Info.plist setup through the production gotchas, with real code.
Stopping the Slow Drift of Colors and Spacing on Every Regeneration with a Single Source of Design Tokens
Every time Rork regenerates a screen, button colors and spacing shift a little. Here is a design that freezes your tokens in one place and steers generated output to always reference them.
Rork's Growth Story: From a Viral Tweet to a16z Backing and the Birth of Rork Max
Rork went from a viral tweet to $2.8M from a16z, then on to a $15M seed. From an indie developer's view, here's what that growth actually means for the apps we ship and maintain.
Drawing the Line Between Rork Max's Swift Output and the Expo Build
Rork Max now generates native Swift, while the standard Rork keeps producing Expo (React Native) apps. Here is how to split responsibilities between the two engines inside a single app business, viewed from real maintenance cost.