●SDK58 — The Expo SDK 58 beta is open. It ships the React Native 0.88 release candidate, and the beta period is stated as three to four weeks●11/01 — For anyone who requested an extension, Google Play's target API deadline lands on November 1. Forty-four days out●EASENV — A long-open report: secrets handed to a local build arrive as the literal variable name rather than its value, and the damage surfaces much later●NEW — The replacement the table recommended had already shut down. A record of reconciling all 74 rows of the deprecation list●UISCENE — iOS 27 requires the new scene lifecycle. SDK 57 makes it something you opt into; it only becomes the default in 58●CREDIT — What "AI errors don't cost credits" actually covers becomes clear once you record a day of asking for the same fix more than once●SDK58 — The Expo SDK 58 beta is open. It ships the React Native 0.88 release candidate, and the beta period is stated as three to four weeks●11/01 — For anyone who requested an extension, Google Play's target API deadline lands on November 1. Forty-four days out●EASENV — A long-open report: secrets handed to a local build arrive as the literal variable name rather than its value, and the damage surfaces much later●NEW — The replacement the table recommended had already shut down. A record of reconciling all 74 rows of the deprecation list●UISCENE — iOS 27 requires the new scene lifecycle. SDK 57 makes it something you opt into; it only becomes the default in 58●CREDIT — What "AI errors don't cost credits" actually covers becomes clear once you record a day of asking for the same fix more than once
After WWDC26, Reselecting What an Indie Should Build Right Now
Now that on-device AI is free for small developers, the premises of app planning have quietly shifted. Here are five questions to choose what to build with Rork at the concept stage.
After WWDC 2026 wrapped, the first thing I jotted down was not a new UI. It was one line: developers with under two million first downloads can use Apple Foundation Models for free on Private Cloud Compute. For someone who builds apps as an indie developer, this changed the very premise of planning.
Until now, "add a smart feature to an app" came with metered external API costs and privacy worries. We have moved closer to a world where you can embed on-device-class AI at essentially zero cost. If so, our answer to "what to build with Rork right now" deserves a small update too. Today I lay out how to choose at the concept stage, as five questions.
Grasp precisely what changed
First, the facts. At WWDC 2026, developers with fewer than two million first App Store downloads gained free access to Apple Foundation Models. The Foundation Models framework added image input and server-side model integration, opening a path to call external models through the same Swift API. The framework itself is slated to be open-sourced this summer.
What matters from an indie standpoint is that this free tier is "a line drawn just for us." The under-2M-downloads condition targets precisely individuals and small teams. We have quietly moved from an era where AI cost held planning back, to one where you may plan with AI as a premise.
Question 1: Does this app only work because AI is free?
Start here. Not at the level of "adding AI makes the app nicer," but: can you say "this concept turns a profit for the first time precisely because AI is cheap to run"?
For example, a feature that summarizes or classifies user input used to have API charges eating into margin. If the free tier erases that, the same concept's economics change. When I look at a new concept, I always ask whether it becomes viable only now that AI cost approaches zero. Ideas where the answer is Yes are high-value candidates to start on now.
✦
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 concrete read on how the Apple Foundation Models free tier (under 2M first downloads) changed indie planning premises
✦Five questions to narrow down what to build now — including billing path, reason to return, and where AI belongs
✦How to use staged planning — validate fast with Rork, deepen as it grows — as a concept-doc template
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.
Question 1 can be answered with arithmetic rather than instinct. I ran the numbers on what those external API charges were really blocking.
// ai-cost-model.mjs — what metered API pricing was actually blockingconst PRICE_IN = 0.15 / 1e6; // USD per input token (small-model assumption)const PRICE_OUT = 0.60 / 1e6; // USD per output tokenconst PRICE = 3.50; // monthly subscription, USDconst STORE_FEE = 0.30;const profiles = [ { name: "Light (one summary a day)", calls: 2, tin: 400, tout: 150 }, { name: "Daily (one insight each morning)", calls: 10, tin: 800, tout: 300 }, { name: "Constant (interpret every input)", calls: 40, tin: 1500, tout: 500 },];// monthly AI cost per DAU, in USDconst costPerDau = (p) => p.calls * 30 * (p.tin * PRICE_IN + p.tout * PRICE_OUT);for (const p of profiles) { const c = costPerDau(p); const breakevenCvr = c / (PRICE * (1 - STORE_FEE)); console.log( `${p.name} : $${c.toFixed(3)}/DAU/mo / $${(c * 5000).toFixed(0)} at 5,000 DAU ` + `/ break-even paid conversion ${(breakevenCvr * 100).toFixed(2)}%` );}
Here is the output from Node v22.22.3. Token pricing moves around by model, so read these as orders of magnitude rather than quotes.
Where the AI sits
Cost per DAU / month
At 5,000 DAU
Break-even paid conversion
Light (one summary a day)
$0.009
$45
0.37%
Daily (one insight each morning)
$0.090
$450
3.67%
Constant (interpret every input)
$0.630
$3,150
25.71%
The shape of this surprised me. A once-a-day summary costs under a cent per user per month even on metered pricing. It breaks even at a 0.37% paid conversion rate, which means it was always affordable — free tier or not. That was never where the brake was.
What was blocked started at "daily." Returning one small insight every morning pushes break-even conversion to 3.67%, and indie apps realistically convert somewhere between 2% and 4%. That lands right on the line. Interpreting every input as it arrives needs 25.71%, which is simply not a number anyone hits.
So the free tier did not release the brake on whether you can add AI. It released the brake on whether you can run AI every single day. Questions 1 and 2 turn out to be the same question asked from two sides. If you want to keep the inference on the device entirely, I covered that path in Adding Offline Edge AI to Rork Apps.
Question 2: Is the reason to keep opening it inside the feature?
The most overlooked thing at the concept stage is the reason to return. Even with a smart feature, an experience that satisfies after one use will not grow retention. In the apps I have run, the ones that lasted generated a little meaning each day.
On-device AI shines here. An experience that interprets the user's data on the spot and returns a small insight for today is a cost you might hesitate over with an external API, but can run daily on the free tier. At the concept stage, put into words whether this feature becomes a reason to open the app every day. If it does not, it is a one-off convenience, not a business core.
Question 3: Is the billing path in the concept from the start?
If you chase revenue as an indie, billing is part of the concept, not an afterthought. At the concept-doc stage I draw a clear line between the value given for free and the value people pay for.
Three lines I write into the concept doc from the start (my template)- Free value: the core of an experience worth opening daily (retention fuel)- Paid value: an extension that deepens the free experience (ad removal / lifted limits / advanced AI)- Billing placement: the natural moment right after the user feels the value
In the on-device AI context, "light AI features free, heavy or high-frequency AI features paid" draws a natural line. Because even a free tier has practical usage realities, a design where heavy users sustain you through a paid plan holds up without strain. If you combine AdMob ads with RevenueCat subscriptions, decide that split at the concept stage too.
Question 4: How many days to validate a minimal form with Rork?
Even a sound concept loses momentum if validation drags. This is where Rork (Expo) speed pays off. I take a new concept, build a minimal form in Rork first, hand out a share link, and confirm within a few days whether the reason to return is real.
In minimal validation, watch "did they open it again tomorrow," not "the numbers"1. Generate just the one core screen in Rork, distribute via share link2. Have 5-10 people use it for a week3. Look only at whether they opened it the next day / stayed after a week4. If they did not stay, drop the concept. If they did, move to the next question
You do not need to pay $200/month for Rork Max at this stage. I broke down what the plan tiers actually buy you in Rork Pricing Compared: Free vs Pro vs Max. Validate the core on Expo-based Rork, and only after you are convinced the reason to return is real, decide whether native depth is required. Not prepaying a heavy investment on concept validation is the realistic rhythm of indie development.
What five testers can and cannot tell you
In Question 4 I said to hand the build to 5-10 people and watch whether they open it again tomorrow. I had never actually checked how much that sample size can support. Binomial confidence intervals settle it.
// retention-signal.mjs — what a tiny "did they come back" sample supportsconst Z = 1.96;function wilson(k, n) { const p = k / n, d = 1 + Z * Z / n; const c = p + Z * Z / (2 * n); const s = Z * Math.sqrt((p * (1 - p) + Z * Z / (4 * n)) / n); return [(c - s) / d, (c + s) / d];}for (const n of [5, 8, 10, 20, 30, 100]) { const [lo, hi] = wilson(Math.round(n * 0.5), n); // half came back const [lo2] = wilson(n, n); // everyone came back console.log( `n=${n} : half -> D1 ${(lo * 100).toFixed(1)}-${(hi * 100).toFixed(1)}%` + ` (width ${((hi - lo) * 100).toFixed(1)}pt) / all -> floor ${(lo2 * 100).toFixed(1)}%` );}for (const p of [0.3, 0.4, 0.5]) { console.log( `True D1 of ${(p * 100).toFixed(0)}% still produces 3/3 ${(p ** 3 * 100).toFixed(1)}% ` + `of the time, 5/5 ${(p ** 5 * 100).toFixed(1)}% of the time` );}
Testers
D1 range if half came back
Interval width
D1 floor if all came back
5
23.1% - 88.2%
65.2pt
56.6%
8
21.5% - 78.5%
57.0pt
67.6%
10
23.7% - 76.3%
52.7pt
72.2%
20
29.9% - 70.1%
40.1pt
83.9%
30
33.2% - 66.8%
33.7pt
88.6%
100
40.4% - 59.6%
19.2pt
96.3%
A split result carries almost no information. Four out of eight tells you only that true D1 sits somewhere between 21.5% and 78.5%. Killing or funding a concept on a 57-point interval is barely different from flipping a coin.
A unanimous result is a different animal. If all five open it the next day, the floor on D1 rises to 56.6%. An app whose true D1 is 30% produces five straight returns 0.2% of the time; even at 40% it happens only 1.0% of the time. Small samples are strong precisely when the answer is unanimous, and worthless when it is mixed.
So I rewrote my own rule for Question 4: discard split results as noise, and advance only the concepts where everyone came back. Reading four-out-of-six as "not bad" and pressing on is the expensive mistake, because it spends weeks on a signal that was never there. What to do with a concept that does survive is a separate craft, which I worked through in Designing a Rork App That Doesn't Get Deleted.
Question 5: When it grows, how much room is there to go deeper?
The final question is the ceiling. For a concept that survived validation, roughly estimate at the concept stage how deep it can later go. If the core you shipped with Rork (Expo) will eventually need native depth like widgets, Live Activities, or on-device Core ML, then a staged move to Rork Max enters the options at that point. Where generation stops reaching and hand-written native work begins is mapped out in Where Rork Max Still Falls Short.
I call this "staged planning." Rather than aiming at the finished form from the start: ship fast with Rork, confirm the reason to return, and deepen with native features as it grows. Balancing investment against conviction at each stage is what wears me down the least while continuing indie development on limited time.
Conclusion: when the premise shifts, re-rank the concepts
On-device AI going free for indie developers is not a story about one new feature. It is a story about the premise of "what should be built" moving. A concept you gave up on, blaming AI cost, might pencil out now.
As a next step, write down three app ideas you have been nursing, and run each through today's five questions. The one with the most Yeses is the concept you should validate first with Rork. I am still in the middle of learning myself, but I would be glad to think it through together.
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.