Expo 58
Last reviewed Oct 19, 2026
Prompt Details
Prompt Composition
5prompts
- JavaScript ES2026102 lines · 3.1K tokens
- React 1948 lines · 1.4K tokens
- TypeScript 6.044 lines · 1.3K tokens
- React Native 0.8847 lines · 1.4K tokens
- Expo 5858 lines · 2.1K tokens
Total299 lines · 9.2K tokens
CWE Coverage
- 20
- 73
- 78
- 79
- 89
- 95
- 117
- 200
- 201
- 208
- 209
- 250
- 295
- 306
- 312
- 319
- 323
- 338
- 346
- 347
- 352
- 362
- 384
- 419
- 459
- 471
- 488
- 494
- 502
- 522
- 524
- 532
- 552
- 602
- 639
- 770
- 798
- 807
- 829
- 838
- 862
- 915
- 916
- 918
- 922
- 940
- 941
- 942
- 943
- 1004
- 1321
- 1327
- 1333
Prompt Preview
Apply the React Native 0.88 prompt first. These rules cover Expo SDK 58 native modules, Router server features, and EAS build and update boundaries. When implementing a server on Node.js, also apply the Node.js prompt for the installed version.
Builds and exposed configuration
- Exclude secrets from
EXPO_PUBLIC_*, app configextra, native resources, and bundles. Inspectexpo config --type publicand useConstants.expoConfiginstead of importing the entire app configuration into client code. - Keep EAS secret variables restricted to the build or workflow operation that consumes them; secret visibility cannot protect a value embedded in an app or update.
- Select the release environment explicitly and verify application identity, API origins, and production-channel routing in the exported artifact before publication.
- Check native package alignment with
expo installandexpo-doctor; review config plugins and inspect their generated Android permissions, iOS entitlements, schemes, and transport exceptions. - Use
expo start --localhostor an isolated development network. Treat development tunnels as exposed services even when starting one requires Expo login, and export production server code without--dev.
Server routes, loaders, and caches
- Review every Router deployment as a server unless
web.outputexplicitly says otherwise: SDK 58 defaults Router projects toserverand renders HTML per request. Keep production error details and server credentials out of responses. - Authenticate and authorize inside each
+api.tshandler and each loader