RORK LABJP
MAX — Rork Max builds native Swift apps rather than React Native, spanning iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and iMessageAPIS — It reaches native Apple APIs including SwiftUI, ARKit, HealthKit, HomeKit, Core ML, and Metal, so AR/LiDAR scanning and on-device ML are in scopeCLOUD — Rork Max writes Swift, compiles it on cloud-hosted Macs, and streams a live simulator that accepts real touch inputSUBMIT — From there it prepares the build for device install or App Store submissionSEED — Rork raised a $15M seed led by Left Lane Capital in April, joined by Peak XV and a16z SpeedrunPRICE — It's free to start at roughly 5 prompts a week, paid plans begin at $25/month, and Rork Max runs $200/monthMAX — Rork Max builds native Swift apps rather than React Native, spanning iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and iMessageAPIS — It reaches native Apple APIs including SwiftUI, ARKit, HealthKit, HomeKit, Core ML, and Metal, so AR/LiDAR scanning and on-device ML are in scopeCLOUD — Rork Max writes Swift, compiles it on cloud-hosted Macs, and streams a live simulator that accepts real touch inputSUBMIT — From there it prepares the build for device install or App Store submissionSEED — Rork raised a $15M seed led by Left Lane Capital in April, joined by Peak XV and a16z SpeedrunPRICE — It's free to start at roughly 5 prompts a week, paid plans begin at $25/month, and Rork Max runs $200/month
Articles/Dev Tools
Dev Tools/2026-07-16Advanced

Regenerable Zones in Rork Max Code: Keeping the Freedom to Rebuild

Generated code carries an invisible asset: the option to throw it away and rebuild it. Every hand edit quietly expires that option. Here is how I track it with a ledger and CI checks across six live apps.

Rork Max226Swift46Architecture17Long-term maintenanceIndie development

Premium Article

At the end of June I changed one line in a wallpaper browser I had generated with Rork Max. Corner radius from 12 to 16. Not worth writing down.

The next week I wanted a filter on that screen, so I added a sentence to the prompt and regenerated it. The new screen worked fine. The corner radius was back to 12.

I lost 4 points. But I stopped there, because something else had happened. Until the week before, that screen had been a screen I could throw away and rebuild. The moment I touched one line, it became a screen that loses something when rebuilt — and nothing anywhere recorded that change.

When you run apps solo as an indie developer, this kind of quiet decay is the dangerous kind. This piece is about deliberately keeping — and deliberately giving up — the option that rides along with generated code.

Generated code ships with an option that expires

Code you write by hand is a maintenance obligation from the first keystroke. There is no option attached. You either fix it or delete it.

Output from a tool like Rork Max is different. A freshly generated file comes with the option to throw it away and rebuild. When the spec changes, instead of chasing a diff you rewrite the prompt and emit the whole thing again. That is not merely convenient — it is a right to buy your own hours back.

The option has a shelf life. Every hand edit quietly expires a little of it. The moment I changed 12 to 16, regenerating that screen became "an operation that loses 4 points." If someone later adds a VoiceOver label, regenerating becomes "an operation that loses accessibility work." Three months on, nobody knows whether the screen is still safe to rebuild — including the person who made the edit.

I run six wallpaper apps in parallel. The first thing that actually hurt after I started using generated code was not credit burn or output quality. It was not knowing which files still carried a live option. Without a ledger you default to hand-fixing when in doubt. Hand-fixing expires more of the option. Nobody stops the cycle, and the $200/month gradually turns into an empty promise.

Three states, not two

As long as you sort files into "generated" and "not generated," this decay is invisible. Split it three ways and it shows up.

StateDefinitionHow to treat it
regenerableUntouched since generation. The ledger's prompt plus contract can produce an equivalent fileAn asset. Protect the boundary
driftedHand-edited, but the delta is written down nowhereA liability. Never leave it here
sealedDeliberately promoted to hand-maintained. Removed from the prompt and from regenerationOrdinary code. Guard it by hand

Drifted is the dangerous one. Regenerate it as if it were regenerable and something disappears silently. Hand-maintain it as if it were sealed and you never collect the benefit of generation. Neither assumption holds, which is the definition of a state you cannot act on.

The operating goal is simple: drive drifted toward zero. When you want to hand-edit, pick one of two paths.

  1. Fold the change back into the prompt or the contract, keeping the file regenerable
  2. Record the decision in the ledger, promote the file to sealed, and guard it by hand from now on

Those 4 points belonged in path one. A single line in the prompt — "corner radius 16" — would have settled it. I did not do that. I fixed my working copy only. I had not postponed a decision so much as failed to notice I was making one.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
A working ledger that tracks every generated file as regenerable, drifted, or sealed — plus the mechanism that decides the state for you
A 40-line CI script that fails the build when a regenerable zone reaches into billing, persistence, or domain code
The 2 metrics from a quarterly regeneration drill, and how to judge whether $200/month for Rork Max is buying a real option or an empty one
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Rork Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Dev Tools2026-06-16
Designing CloudKit Sync in a Rork Max Native App — Handling Conflicts and Deletes
You want the same data on iPhone and iPad. When you add CloudKit to a Swift app generated by Rork Max, the hard part is not saving — it is conflicts and deletes. Here are the design decisions I settled on.
Dev Tools2026-06-15
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.
Dev Tools2026-07-13
Losing HealthKit Data on Incremental Sync — Designing HKQueryAnchor Persistence
When step or sleep data double-counts or goes missing on incremental HealthKit sync, the root cause is usually HKQueryAnchor persistence. Here is a working Swift design that handles newAnchor and deletedObjects correctly and stays consistent across reinstalls and background updates.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →