Cross-platform tradeoffs are real (animations, deep platform integrations). Use Claude up front to mark which features genuinely need native vs which can ride on Expo's SDK.
iOS + Android with Expo
If you're targeting both stores with a small team, native-per-platform is usually the wrong tradeoff. Expo's tooling has gotten good enough that you write TypeScript once, EAS Build compiles native bundles, and OTA updates ship JS-only fixes without re-submitting. Pair with Cursor + Claude and the loop is faster than either native track.
Expo· Build infra + OTA updatesCursor is great at TypeScript. React Native ecosystems are well-trained-on, so suggestions are reliable. Composer covers cross-file refactors when you change a navigation pattern or auth provider.
Expo Router for navigation, EAS Build for managed native compiling, EAS Update for shipping JS fixes without store review, EAS Submit for one-command store uploads. The infra you'd otherwise rebuild every project.
- claudeFree tier
- cursor$20
- expoFree Hobby
- + stores$8 ($99 + $25, annualized)
- claude$20
- cursor$20
- expo$19 Production
- + stores$8
- claude$20
- cursor$200
- expo$99 Enterprise
- + stores$0 (org-wide)
Fast mode for Claude Opus 4.8 deprecated with November 30 removal date
Fast mode for Claude Opus 4.8 is being deprecated and will be removed on November 30, 2026. Developers using fast mode with Opus 4.8 must migrate to Claude Opus 5.5 to continue using the feature.
Usage and Cost Analytics API launched in beta to track token consumption and costs
Anthropic released the Usage and Cost Analytics API in beta, enabling organizations to monitor token usage and costs across Claude API consumption with filtering and grouping by dimensions like model, workspace, and API key. The API provides /v1/organizations/analytics/usage and /v1/organizations/analytics/cost endpoints. Legacy usage reporting endpoints remain supported.
Messages API and Token Counting API maximum request size increased to 128 MB
The maximum request size for the Messages API and Token Counting API doubled from 32 MB to 128 MB on the first-party Claude API, allowing developers to process significantly larger payloads in single requests. This change takes effect immediately and applies to both APIs.
Claude Tag API released in beta for Claude Enterprise organizations on Slack
The Claude Tag API is now available in beta for Claude Enterprise organizations, providing endpoints to read and configure Claude Tag settings on Slack channels and workspaces with Access bundle support. The API requires Admin API keys with read:claude_tag or write:claude_tag scope. This feature is exclusive to Claude Enterprise.
- 1Decide cross-platform vs nativeClaude
Some apps shouldn't be Expo (heavy AR, custom video pipelines, deep iOS WidgetKit). Use Claude to audit upfront.
Prompt · Cross-platform fitness auditAudit whether the idea below is a good fit for Expo + React Native, or whether it should be native (Swift / Kotlin) per platform. Idea: """ {{1-line description + the 5 most-important features}} """ Output: 1. **Verdict**: Expo / Native iOS / Native Android / Both native — and a 1-sentence "why". 2. **The 3 features that drive the verdict** — and which side they push toward. 3. **Mitigations** — if Expo, are there config-plugins or community modules that close the native gap? Be specific. 4. **Costs of the wrong call** — what does this app look like in 12 months if I pick the other path? Be honest. The answer "this should be native" is allowed. - 2Scaffold with Cursor + Expo RouterCursor
`npx create-expo-app`, then Cursor's Composer to scaffold tabs + screens. The Expo Router file-based routing makes the screen layout legible in one folder.
- 3Iterate with Expo Go on a real deviceExpo
Expo Go on your phone for the inner loop. EAS Build only when you need a real native build (signing, native modules, store submission).
- 4EAS Build for store buildsExpo
`eas build --profile production --platform all` builds both iOS and Android binaries in the cloud. ~15 min the first time, faster after caching.
- 5EAS Submit + EAS UpdateExpo
`eas submit` uploads to TestFlight + Play Console in one command. `eas update` ships JS fixes after launch without re-submitting (within Apple's policy boundary).
Could not have justified two native codebases. Expo + Cursor put the team at parity with native-only competitors on screens-shipped-per-week. The only feature they had to drop was a custom haptic pattern that wasn't in expo-haptics; they shipped without it and added a config plugin in v2.
If your app's core is AR, custom audio, or watchOS / Wear OS companions, Expo will fight you. The 'fitness audit' step exists to catch this before you've written 10k lines.
OTA updates are the killer Expo feature, but they live inside Apple's policy boundary (no major feature changes via JS). Plan from day one which features are JS-only and which need a native build + submission.
When a native module isn't in expo-* or doesn't have a config plugin, the temptation is to eject to a bare workflow. Don't, unless you're sure. Expo's prebuild + config plugins almost always cover it.
What changed in AI tools and the stacks that ship. One email a week.