1<!DOCTYPE html><html lang="en" class="bg-default"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"/><link rel="preload" as="image" imageSrcSet="https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1920 1920w" fetchPriority="high"/><link rel="preload" as="image" imageSrcSet="https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=1800 1800w" fetchPriority="high"/><link rel="preload" as="image" imageSrcSet="https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" fetchPriority="high"/><link rel="preload" as="image" imageSrcSet="https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" fetchPriority="high"/><link rel="preload" as="image" imageSrcSet="https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" fetchPriority="high"/><link rel="preload" as="image" imageSrcSet="https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" fetchPriority="high"/><title data-rh="true">Expo blog</title><meta name="description" content="Latest news, articles and announcements about Expo and Expo services from the members of the Expo team and guests." data-rh="true"/><link rel="canonical" href="https://expo.dev/blog" data-rh="true"/><meta property="og:title" content="Expo blog" data-rh="true"/><meta property="og:description" content="Latest news, articles and announcements about Expo and Expo services from the members of the Expo team and guests." data-rh="true"/><meta property="og:url" content="https://expo.dev/blog" data-rh="true"/><meta property="og:type" content="website" data-rh="true"/><meta property="og:image" content="https://og.expo.dev/?theme=universe&title=Expo+blog&description=Latest+news%2C+articles+and+announcements+about+Expo+and+Expo+services+from+the+members+of+the+Expo+team+and+guests.&iconName=Announcement03DuotoneIcon" data-rh="true"/><meta name="twitter:title" content="Expo blog" data-rh="true"/><meta name="twitter:description" content="Latest news, articles and announcements about Expo and Expo services from the members of the Expo team and guests." data-rh="true"/><meta name="twitter:image" content="https://og.expo.dev/?theme=universe&title=Expo+blog&description=Latest+news%2C+articles+and+announcements+about+Expo+and+Expo+services+from+the+members+of+the+Expo+team+and+guests.&iconName=Announcement03DuotoneIcon" data-rh="true"/><link rel="preload" href="/_expo/static/css/globals-a9f67397ce3b6379eb7691cc0f03f9b8.css" as="style"/><link rel="preload" href="/_expo/static/css/captions-7c4515fb01b87134861123c29f2f0781.css" as="style"/><link rel="preload" href="/_expo/static/css/thumbnails-abafdfbbe67632d6b1b96dce3fbcd9cd.css" as="style"/><link rel="preload" href="/_expo/static/css/styles-13744658971118f9055e65b968fd7f16.css" as="style"/><link rel="preload" href="/_expo/static/css/icons.module-0a372b041aeaa1ca6d2a3d00bb04c32f.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-container.module-28600ae1fdc5e67405cce6996efa294b.css" as="style"/><link rel="preload" href="/_expo/static/css/theme-e195e73aa48c5dd46d0fc63cda1c6782.css" as="style"/><link rel="preload" href="/_expo/static/css/verified-badge.module-3d7941a9d4f8eb96ec25adb75c5bf902.css" as="style"/><link rel="preload" href="/_expo/static/css/highlighted-label.module-ad5c6eeabeb3c845aa118772dac16d19.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-header.module-8a02b93ba8bb07e0e7b01e272cb06f47.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-in-reply-to.module-707ef84d42bdf3958b425bc9171afaf3.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-link.module-c2875316bb318df0f4e21ab07a41bcb5.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-body.module-0898ff4ed69523452d098f1a7d635362.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-media.module-74b0432e3408597c8af7c56638b6bfd0.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-media-video.module-706d82e94059ed46865772fbc212e780.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-info-created-at.module-6798a11e93589d16c9b09099c6a30433.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-info.module-e3a702207031a159789342520e696258.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-actions.module-b6778dec77d3856e87258829608602d1.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-replies.module-fc8a3af879fadd01c9cfcfc56538660b.css" as="style"/><link rel="preload" href="/_expo/static/css/quoted-tweet-container.module-40d39ee2c7104d35d7a7b35416de8b3c.css" as="style"/><link rel="preload" href="/_expo/static/css/quoted-tweet-header.module-d664d8044f56e00cdbc6ffe1cd8daefe.css" as="style"/><link rel="preload" href="/_expo/static/css/quoted-tweet-body.module-da98843a88eaf2e9f2373560c9ac3e67.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-not-found.module-f05e364952dc3984cac81ece0c2c9430.css" as="style"/><link rel="preload" href="/_expo/static/css/skeleton.module-1b429deceaca305402f2e1a736593e55.css" as="style"/><link rel="preload" href="/_expo/static/css/tweet-skeleton.module-cd5ad9eea71f8435d9031b1f50f0229a.css" as="style"/><link rel="preload" href="/_expo/static/js/web/__expo-metro-runtime-1f8f5d3ca6b7f58204d51e14506d73fb.js" as="script"/><link rel="preload" href="/_expo/static/js/web/__common-6134bd89ba1d8a706c7842a2e73a6981.js" as="script"/><link rel="preload" href="/_expo/static/js/web/entry-351f70753b97e238b24d2848bb68271a.js" as="script"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="color-scheme" content="light dark"/><meta property="og:site_name" content="Expo Blog"/><meta name="twitter:card" content="summary_large_image"/><meta property="msapplication-TileImage" content="/static/brand/app-icon-512x512.png"/><link rel="apple-touch-appIcon" href="/static/brand/app-icon-512x512.png"/>
1<link rel="preconnect" href="https://static.expo.dev"/><link rel="preload" href="https://static.expo.dev/static/fonts/fonts.css" as="style"/><link rel="icon" type="image/png" href="/static/favicons/favicon-light-48x48.png" media="(prefers-color-scheme: light)"/><link rel="icon" type="image/png" href="/static/favicons/favicon-dark-48x48.png" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/static/favicons/favicon-light-16x16.png" sizes="16x16" type="image/png" media="(prefers-color-scheme: light)"/><link rel="icon" href="/static/favicons/favicon-dark-16x16.png" sizes="16x16" type="image/png" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/static/favicons/favicon-light-32x32.png" sizes="32x32" type="image/png" media="(prefers-color-scheme: light)"/><link rel="icon" href="/static/favicons/favicon-dark-32x32.png" sizes="32x32" type="image/png" media="(prefers-color-scheme: dark)"/><link rel="preconnect" href="https://cdn.sanity.io"/><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml"/><link rel="preload" href="https://static.expo.dev/static/fonts/inter-latin.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="https://static.expo.dev/static/fonts/jetbrains-mono-latin.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><style id="react-native-stylesheet">[stylesheet-group="0"]{} 2body{margin:0;} 3button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;} 4html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);} 5input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;} 6[stylesheet-group="1"]{} 7.css-11aywtz{-moz-appearance:textfield;-webkit-appearance:none;background-color:rgba(0,0,0,0.00);border-bottom-left-radius:0px;border-bottom-right-radius:0px;border-top-left-radius:0px;border-top-right-radius:0px;border:0 solid black;box-sizing:border-box;font:14px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;margin:0px;padding:0px;resize:none;} 8.css-146c3p1{background-color:rgba(0,0,0,0.00);border:0 solid black;box-sizing:border-box;color:rgba(0,0,0,1.00);display:inline;font:14px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;list-style:none;margin:0px;padding:0px;position:relative;text-align:start;text-decoration:none;white-space:pre-wrap;word-wrap:break-word;} 9.css-1jxf684{background-color:rgba(0,0,0,0.00);border:0 solid black;box-sizing:border-box;color:inherit;display:inline;font:inherit;list-style:none;margin:0px;padding:0px;position:relative;text-align:inherit;text-decoration:none;white-space:inherit;word-wrap:break-word;} 10.css-9pa8cd{bottom:0px;height:100%;left:0px;opacity:0;position:absolute;right:0px;top:0px;width:100%;z-index:-1;} 11.css-g5y9jx{align-content:flex-start;align-items:stretch;background-color:rgba(0,0,0,0.00);border:0 solid black;box-sizing:border-box;display:flex;flex-basis:auto;flex-direction:column;flex-shrink:0;list-style:none;margin:0px;min-height:0px;min-width:0px;padding:0px;position:relative;text-decoration:none;z-index:0;} 12[stylesheet-group="2"]{} 13.r-11mg6pl{border-bottom-color:rgba(255,255,255,1.00);border-left-color:rgba(255,255,255,1.00);border-right-color:rgba(255,255,255,1.00);border-top-color:rgba(255,255,255,1.00);} 14.r-13awgt0{flex:1;} 15.r-1awa8pu{border-bottom-color:rgba(101,119,134,1.00);border-left-color:rgba(101,119,134,1.00);border-right-color:rgba(101,119,134,1.00);border-top-color:rgba(101,119,134,1.00);} 16.r-1bq2mok{margin:3px;} 17.r-1d4xg89{border-bottom-color:rgba(170,184,194,1.00);border-left-color:rgba(170,184,194,1.00);border-right-color:rgba(170,184,194,1.00);border-top-color:rgba(170,184,194,1.00);} 18.r-1dzdj1l{border-bottom-left-radius:10px;border-bottom-right-radius:10px;border-top-left-radius:10px;border-top-right-radius:10px;} 19.r-1f0042m{border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;} 20.r-1j16mh1{border-bottom-left-radius:100%;border-bottom-right-radius:100%;border-top-left-radius:100%;border-top-right-radius:100%;} 21.r-1jkafct{border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-top-left-radius:2px;border-top-right-radius:2px;} 22.r-1jyn79y{border-bottom-color:rgba(0,150,136,1.00);border-left-color:rgba(0,150,136,1.00);border-right-color:rgba(0,150,136,1.00);border-top-color:rgba(0,150,136,1.00);} 23.r-1pcd2l5{padding:20px;} 24.r-1phboty{border-bottom-style:solid;border-left-style:solid;border-right-style:solid;border-top-style:solid;} 25.r-1q9bdsx{border-bottom-left-radius:12px;border-bottom-right-radius:12px;border-top-left-radius:12px;border-top-right-radius:12px;} 26.r-1qsk4np{overflow-x:clip;overflow-y:clip;} 27.r-1rvyss1{border-bottom-color:rgba(255,255,255,0.20);border-left-color:rgba(255,255,255,0.20);border-right-color:rgba(255,255,255,0.20);border-top-color:rgba(255,255,255,0.20);} 28.r-1sp51qo{padding:10px;} 29.r-1udh08x{overflow-x:hidden;overflow-y:hidden;} 30.r-1uu6nss{padding:5px;} 31.r-1xfd6ze{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top-left-radius:8px;border-top-right-radius:8px;} 32.r-4a18lf{border-bottom-color:rgba(255,0,0,1.00);border-left-color:rgba(255,0,0,1.00);border-right-color:rgba(255,0,0,1.00);border-top-color:rgba(255,0,0,1.00);} 33.r-60ke3l{border-bottom-color:rgba(0,128,0,1.00);border-left-color:rgba(0,128,0,1.00);border-right-color:rgba(0,128,0,1.00);border-top-color:rgba(0,128,0,1.00);} 34.r-6t2glc{border-bottom-left-radius:40px;border-bottom-right-radius:40px;border-top-left-radius:40px;border-top-right-radius:40px;} 35.r-9x6qib{border-bottom-color:rgba(204,214,221,1.00);border-left-color:rgba(204,214,221,1.00);border-right-color:rgba(204,214,221,1.00);border-top-color:rgba(204,214,221,1.00);} 36.r-crgep1{margin:0px;} 37.r-d045u9{border-bottom-width:2px;border-left-width:2px;border-right-width:2px;border-top-width:2px;} 38.r-d23pfw{padding:24px;} 39.r-edyy15{padding:8px;} 40.r-fx7oqy{border-bottom-color:rgba(0,0,255,1.00);border-left-color:rgba(0,0,255,1.00);border-right-color:rgba(0,0,255,1.00);border-top-color:rgba(0,0,255,1.00);} 41.r-krxsd3{display:-webkit-box;} 42.r-rs99b7{border-bottom-width:1px;border-left-width:1px;border-right-width:1px;border-top-width:1px;} 43.r-t60dpp{padding:0px;} 44.r-wg31gx{border-bottom-color:rgba(49,53,56,1.00);border-left-color:rgba(49,53,56,1.00);border-right-color:rgba(49,53,56,1.00);border-top-color:rgba(49,53,56,1.00);} 45.r-xoduu5{display:inline-flex;} 46.r-ywje51{margin:auto;} 47.r-z2wwpe{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top-left-radius:4px;border-top-right-radius:4px;} 48[stylesheet-group="2.1"]{} 49.r-11f147o{padding-bottom:8px;padding-top:8px;} 50.r-17q4wm6{margin-left:5px;margin-right:5px;} 51.r-184id4b{margin-bottom:12px;margin-top:12px;} 52.r-1d7mnkm{padding-bottom:15px;padding-top:15px;} 53.r-1e084wi{padding-left:0px;padding-right:0px;} 54.r-1mmae3n{padding-bottom:12px;padding-top:12px;} 55.r-1ntr0p{padding-left:5px;padding-right:5px;} 56.r-1rsorjc{padding-left:36px;padding-right:36px;} 57.r-1yd117h{padding-bottom:7px;padding-top:7px;} 58.r-3o4zer{padding-left:12px;padding-right:12px;} 59.r-cxgwc0{padding-left:24px;padding-right:24px;} 60.r-f8sm7e{margin-left:auto;margin-right:auto;} 61.r-is05cd{padding-left:8px;padding-right:8px;} 62.r-jdiy1a{margin-left:11px;margin-right:11px;} 63.r-jusfrs{margin-left:12px;margin-right:12px;} 64.r-n5f61p{margin-bottom:3px;margin-top:3px;} 65.r-n7gxbd{padding-left:4px;padding-right:4px;} 66.r-u9wvl5{padding-left:20px;padding-right:20px;} 67.r-ugi1tw{padding-left:5%;padding-right:5%;} 68.r-w7s2jr{padding-bottom:16px;padding-top:16px;} 69.r-ytbthy{padding-bottom:10px;padding-top:10px;} 70[stylesheet-group="2.2"]{} 71.r-10s2tm5{left:0%;} 72.r-16o8guy{right:100%;} 73.r-1a11zyx{margin-right:12px;} 74.r-1cwvpvk{margin-left:12px;} 75.r-1e97lx8{margin-right:3px;} 76.r-1euzeng{padding-left:24px;} 77.r-1g4tz6n{margin-right:-14.5px;} 78.r-1h31txp{padding-right:16px;} 79.r-1lhn9r{margin-left:-14.5px;} 80.r-1sqnqi2{margin-left:3px;} 81.r-1vl2501{padding-right:24px;} 82.r-9mo606{margin-right:10px;} 83.r-c59us2{left:-3px;} 84.r-dqe1q{right:0%;} 85.r-qb41rp{margin-right:5px;} 86.r-rci37q{left:100%;} 87.r-uhung1{margin-left:10px;} 88.r-vpmibe{right:-3px;} 89.r-w67my2{padding-left:16px;} 90.r-wizibn{margin-left:5px;} 91[stylesheet-group="3"]{} 92.r-105ug2t{pointer-events:auto!important;} 93.r-10ptun7{height:16px;}
94.r-10v3vxq{transform:scaleX(-1);} 95.r-10x49cs{font-size:10px;} 96.r-10xqauy{padding-top:env(safe-area-inset-top);} 97.r-11j9u27{visibility:hidden;} 98.r-11mpjr4{background-color:rgba(223,223,223,1.00);} 99.r-11udlyb{background-color:rgba(0,150,136,1.00);} 100.r-11v9fek{min-width:180px;} 101.r-11yh6sk{overflow-x:hidden;} 102.r-12f6czt{top:17px;} 103.r-12vffkv>* {pointer-events:auto;} 104.r-12vffkv{pointer-events:none!important;} 105.r-135wba7{line-height:24px;} 106.r-13aq9py{animation-name:r-1iq689l;} 107.r-13qz1uu{width:100%;} 108.r-13tjlyg{transition-duration:0.1s;} 109.r-1472mwg{height:24px;} 110.r-14gqq1x{margin-top:4px;} 111.r-14lw9ot{background-color:rgba(255,255,255,1.00);} 112.r-14sbq61{background-color:rgba(33,150,243,1.00);} 113.r-150rngu{-webkit-overflow-scrolling:touch;} 114.r-16y2uox{flex-grow:1;} 115.r-173mn98{align-self:flex-end;} 116.r-173mzie{transform:scaleY(-1);} 117.r-1777fci{justify-content:center;} 118.r-17bb2tj{animation-duration:0.75s;} 119.r-17leim2{background-repeat:repeat;} 120.r-17s6mgv{justify-content:flex-end;} 121.r-17tb59b{opacity:0.7;} 122.r-17tloay{opacity:0.6;} 123.r-17u3ijr{background-color:rgba(155,161,166,0.27);} 124.r-184en5c{z-index:1;} 125.r-18nhz7w{top:-3px;} 126.r-18u1ve8{color:rgba(255,255,255,0.40);} 127.r-18u37iz{flex-direction:row;} 128.r-19oahor{font-size:64px;} 129.r-19wmn03{width:20px;} 130.r-19z077z{touch-action:none;} 131.r-1a2p6p6{-webkit-text-decoration-style:solid;text-decoration-style:solid;} 132.r-1abnn5w{animation-play-state:paused;} 133.r-1acpoxo{width:36px;} 134.r-1aockid{width:40px;} 135.r-1awozwy{align-items:center;} 136.r-1ay1djp{animation-duration:1s;} 137.r-1b43r93{font-size:14px;} 138.r-1c6unfx{forced-color-adjust:none;} 139.r-1c85bru{width:270px;} 140.r-1cmwbt1{gap:8px;} 141.r-1d2f490{left:0px;} 142.r-1d5kdc7{flex-direction:column-reverse;} 143.r-1ddef8g{-webkit-text-decoration-line:underline;text-decoration-line:underline;} 144.r-1dernwh{height:70%;} 145.r-1ei5mc7{cursor:inherit;} 146.r-1enofrn{font-size:12px;} 147.r-1euycsn{flex-direction:row-reverse;} 148.r-1ewcgjf{box-shadow:0px 1px 3px rgba(0,0,0,0.5);} 149.r-1ff274t{text-align:right;} 150.r-1g80hic{opacity:0.8;} 151.r-1ge9hsw{max-width:960px;} 152.r-1ghxqbu{font-variant:tabular-nums;} 153.r-1h0z5md{justify-content:flex-start;} 154.r-1habvwh{align-items:flex-start;} 155.r-1i10wst{font-size:18px;} 156.r-1i6wzkk{-moz-transition-property:opacity;-webkit-transition-property:opacity;transition-property:opacity;} 157.r-1i71y14{gap:14px;} 158.r-1ikidpy{letter-spacing:0.5px;} 159.r-1iln25a{word-wrap:normal;} 160.r-1inkyih{font-size:17px;} 161.r-1iusvr4{flex-basis:0px;} 162.r-1janqcz{width:16px;} 163.r-1jkjb{margin-left:8px;} 164.r-1kb76zh{margin-right:8px;} 165.r-1kfrs79{font-weight:600;} 166.r-1kihuf0{align-self:center;} 167.r-1ld3bg{top:-4px;} 168.r-1ldzwu0{animation-timing-function:linear;} 169.r-1loqt21{cursor:pointer;} 170.r-1mlwlqe{flex-basis:auto;} 171.r-1mrlafo{background-position:0;} 172.r-1muvv40{animation-iteration-count:infinite;} 173.r-1niwhzg{background-color:rgba(0,0,0,0.00);} 174.r-1nlw0im{bottom:8px;} 175.r-1no09lo{margin-top:28px;} 176.r-1nxhmzv{margin-bottom:28px;} 177.r-1ny4l3l{outline-style:none;} 178.r-1ocf4r9{scroll-snap-type:y mandatory;} 179.r-1onu96p{border-curve:continuous;} 180.r-1oszu61{align-items:stretch;} 181.r-1otgn73{touch-action:manipulation;} 182.r-1p0dtai{bottom:0px;} 183.r-1pi2tsx{height:100%;} 184.r-1pm8pkb{font-family:Courier;} 185.r-1qd0xha{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;} 186.r-1qulhi1{animation-name:r-1pzkwqh;} 187.r-1r4fvd0{color:rgba(82,169,255,1.00);} 188.r-1r74h94{left:8px;} 189.r-1r8g8re{height:36px;} 190.r-1rnoaur{overflow-y:auto;} 191.r-1ssbvtb{gap:12px;} 192.r-1sxrcry{background-size:auto;} 193.r-1udbk01{text-overflow:ellipsis;} 194.r-1ui5ee8{font-size:32px;} 195.r-1vr29t4{font-weight:800;} 196.r-1w6e6rj{flex-wrap:wrap;} 197.r-1wbh5a2{flex-shrink:1;} 198.r-1wtj0ep{justify-content:space-between;} 199.r-1wyyakw{z-index:-1;} 200.r-1xcajam{position:fixed;} 201.r-1xnzce8{-moz-user-select:text;-webkit-user-select:text;user-select:text;} 202.r-1xpsq9i{box-shadow:0px 3px 3px rgba(0, 0, 0, 0.33);} 203.r-1xzupcd{width:13px;} 204.r-1yef0xd{animation-name:r-11cv4x;} 205.r-2eszeu::-webkit-scrollbar{display:none} 206.r-2eszeu{scrollbar-width:none;} 207.r-30o5oe{-moz-appearance:none;-ms-appearance:none;-webkit-appearance:none;appearance:none;} 208.r-356f0p{letter-spacing:0.35px;} 209.r-3mc0re{right:8px;} 210.r-3s2u2q{white-space:nowrap;} 211.r-417010{z-index:0;} 212.r-4gszlv{background-size:cover;} 213.r-4v7adb{height:5px;} 214.r-5oul0u{margin-bottom:8px;} 215.r-60vfwk{min-width:1px;} 216.r-633pao>* {pointer-events:none;} 217.r-633pao{pointer-events:none!important;} 218.r-6dt33c{opacity:1;} 219.r-6gpygo{margin-bottom:12px;} 220.r-6taxm2:-ms-input-placeholder{color:var(--placeholderTextColor);opacity:1;} 221.r-6taxm2::-moz-placeholder{color:var(--placeholderTextColor);opacity:1;} 222.r-6taxm2::-webkit-input-placeholder{color:var(--placeholderTextColor);opacity:1;} 223.r-6taxm2::placeholder{color:var(--placeholderTextColor);opacity:1;} 224.r-726pan{width:31px;} 225.r-76blku{height:21px;} 226.r-7cikom{font-size:inherit;} 227.r-7q8q6z{cursor:default;} 228.r-8akbws{-webkit-box-orient:vertical;} 229.r-8ay8q1{letter-spacing:0.1px;} 230.r-97e31f{padding-bottom:env(safe-area-inset-bottom);} 231.r-9daxd3{animation-duration:250ms;} 232.r-adyw6z{font-size:20px;} 233.r-agouwx{transform:translateZ(0);} 234.r-ah5dr5>* {pointer-events:none;} 235.r-ah5dr5{pointer-events:auto!important;} 236.r-aruset{font-weight:200;} 237.r-bi4vy9{transform:translateY(100%);} 238.r-bt1l66{min-height:20px;} 239.r-buy8e9{overflow-y:hidden;} 240.r-bv2aro{padding-left:env(safe-area-inset-left);} 241.r-c68hjy{color:rgba(161,161,161,1.00);} 242.r-cpa5s6{scroll-snap-align:start;} 243.r-cqee49{color:rgba(0,0,0,1.00);} 244.r-dkge59{background-color:rgba(170,184,194,1.00);} 245.r-dnmrzs{max-width:100%;} 246.r-eafdt9{transition-duration:0.15s;} 247.r-ebwn4k{animation-name:r-q67da2;} 248.r-ehq7j7{background-size:contain;} 249.r-eqz5dr{flex-direction:column;} 250.r-eu3ka{height:40px;} 251.r-fdjqy7{text-align:left;} 252.r-g3mlsw{animation-name:r-t2lo5v;} 253.r-ghxds0{transform:translateY(0%);} 254.r-gtdqiz{position:-webkit-sticky;position:sticky;} 255.r-h0d30l{height:28px;} 256.r-hxflta{padding-right:env(safe-area-inset-right);} 257.r-icoktb{opacity:0.5;} 258.r-ipm5af{top:0px;} 259.r-jwli3a{color:rgba(255,255,255,1.00);} 260.r-k200y{align-self:flex-start;} 261.r-kemksi{background-color:rgba(0,0,0,1.00);} 262.r-kizejy{color:rgba(155,161,166,1.00);} 263.r-knv0ih{margin-top:8px;} 264.r-leqjx2{animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);} 265.r-lltvgl{overflow-x:auto;} 266.r-lpb231{height:168px;} 267.r-lrsllp{width:24px;} 268.r-lrvibr{-moz-user-select:none;-webkit-user-select:none;user-select:none;} 269.r-majxgm{font-weight:500;} 270.r-mfh4gg{scroll-snap-type:x mandatory;} 271.r-mhe3cw{z-index:10;} 272.r-mro3nb{background-color:rgba(21,23,24,1.00);} 273.r-n6v787{font-size:13px;} 274.r-o4n3w5{width:23px;} 275.r-orgf3d{opacity:0;} 276.r-q4m81j{text-align:center;} 277.r-qfi6ny{top:30000px;} 278.r-qklmqi{border-bottom-width:1px;} 279.r-qn3fzs{padding-bottom:24px;} 280.r-rjixqe{line-height:20px;} 281.r-rs94m5{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8
281cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K");} 282.r-s62m2j{animation-timing-function:cubic-bezier(0.47, 0, 0.745, 0.715);} 283.r-sfbmgh{z-index:9999;} 284.r-so7y2g{line-height:64px;} 285.r-tsynxw{text-transform:uppercase;} 286.r-u6sd8q{background-repeat:no-repeat;} 287.r-u8s1d{position:absolute;} 288.r-u92y06{background-color:rgba(255,165,0,1.00);} 289.r-ubezar{font-size:16px;} 290.r-uho16t{font-size:34px;} 291.r-vacyoi{padding-bottom:64px;} 292.r-van48c{caret-color:transparent;} 293.r-vboj7i{top:-7px;} 294.r-vvn4in{background-position:center;} 295.r-vw2c0b{font-weight:bold;} 296.r-wfqgy4{transition-duration:100ms;} 297.r-ws9h79{left:4px;} 298.r-x11e5r{font-family:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;} 299.r-x3cy2q{background-size:100% 100%;} 300.r-xx3c9p{animation-name:r-imtty0;} 301.r-y7v2we{background-color:rgba(32,36,37,1.00);} 302.r-z80fyv{height:20px;} 303.r-zchlnj{right:0px;} 304.r-zz5t5d{font-size:28px;} 305@-webkit-keyframes r-11cv4x{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}} 306@-webkit-keyframes r-1iq689l{0%{transform:translateY(0%);}100%{transform:translateY(100%);}} 307@-webkit-keyframes r-1pzkwqh{0%{transform:translateY(100%);}100%{transform:translateY(0%);}} 308@-webkit-keyframes r-imtty0{0%{opacity:0;}100%{opacity:1;}} 309@-webkit-keyframes r-q67da2{0%{transform:translateX(-100%);}100%{transform:translateX(400%);}} 310@-webkit-keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}} 311@keyframes r-11cv4x{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}} 312@keyframes r-1iq689l{0%{transform:translateY(0%);}100%{transform:translateY(100%);}} 313@keyframes r-1pzkwqh{0%{transform:translateY(100%);}100%{transform:translateY(0%);}} 314@keyframes r-imtty0{0%{opacity:0;}100%{opacity:1;}} 315@keyframes r-q67da2{0%{transform:translateX(-100%);}100%{transform:translateX(400%);}} 316@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><link rel="stylesheet" href="/_expo/static/css/globals-a9f67397ce3b6379eb7691cc0f03f9b8.css"/><link rel="stylesheet" href="/_expo/static/css/captions-7c4515fb01b87134861123c29f2f0781.css"/><link rel="stylesheet" href="/_expo/static/css/thumbnails-abafdfbbe67632d6b1b96dce3fbcd9cd.css"/><link rel="stylesheet" href="/_expo/static/css/styles-13744658971118f9055e65b968fd7f16.css"/><link rel="stylesheet" href="/_expo/static/css/icons.module-0a372b041aeaa1ca6d2a3d00bb04c32f.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-container.module-28600ae1fdc5e67405cce6996efa294b.css"/><link rel="stylesheet" href="/_expo/static/css/theme-e195e73aa48c5dd46d0fc63cda1c6782.css"/><link rel="stylesheet" href="/_expo/static/css/verified-badge.module-3d7941a9d4f8eb96ec25adb75c5bf902.css"/><link rel="stylesheet" href="/_expo/static/css/highlighted-label.module-ad5c6eeabeb3c845aa118772dac16d19.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-header.module-8a02b93ba8bb07e0e7b01e272cb06f47.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-in-reply-to.module-707ef84d42bdf3958b425bc9171afaf3.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-link.module-c2875316bb318df0f4e21ab07a41bcb5.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-body.module-0898ff4ed69523452d098f1a7d635362.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-media.module-74b0432e3408597c8af7c56638b6bfd0.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-media-video.module-706d82e94059ed46865772fbc212e780.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-info-created-at.module-6798a11e93589d16c9b09099c6a30433.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-info.module-e3a702207031a159789342520e696258.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-actions.module-b6778dec77d3856e87258829608602d1.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-replies.module-fc8a3af879fadd01c9cfcfc56538660b.css"/><link rel="stylesheet" href="/_expo/static/css/quoted-tweet-container.module-40d39ee2c7104d35d7a7b35416de8b3c.css"/><link rel="stylesheet" href="/_expo/static/css/quoted-tweet-header.module-d664d8044f56e00cdbc6ffe1cd8daefe.css"/><link rel="stylesheet" href="/_expo/static/css/quoted-tweet-body.module-da98843a88eaf2e9f2373560c9ac3e67.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-not-found.module-f05e364952dc3984cac81ece0c2c9430.css"/><link rel="stylesheet" href="/_expo/static/css/skeleton.module-1b429deceaca305402f2e1a736593e55.css"/><link rel="stylesheet" href="/_expo/static/css/tweet-skeleton.module-cd5ad9eea71f8435d9031b1f50f0229a.css"/>
316<script>(function(){try{new RegExp("(?<=x)");return}catch(e){}window.location.replace("/unsupported-browser.html")})()</script>
316<link rel="stylesheet" href="https://static.expo.dev/static/fonts/fonts.css"/>
316<script id="server-user" type="application/json">{}</script>
316<script>(function(){if(window.matchMedia("(prefers-color-scheme:dark)").matches){document.documentElement.classList.add("dark-theme")}})()</script>
316</head><body class="bg-default text-pretty antialiased dark:bg-screen"><div id="root"><div class="css-g5y9jx r-13awgt0"><!--$--><!--$?--><template id="B:0"></template><!--/$--><!--/$--></div></div><div id="deployment-environment" data-deployment-environment="production" class="hidden"></div><div id="website-environment" data-website-environment="" class="hidden"></div><div id="server-fetched-snack-url" data-snack-url="https://snack.expo.dev" class="hidden"></div><div id="api-server-url" data-api-server-url="https://api.expo.dev" class="hidden"></div>
316<script defer="" src="/_expo/static/js/web/__expo-metro-runtime-1f8f5d3ca6b7f58204d51e14506d73fb.js"></script>
316<script defer="" src="/_expo/static/js/web/__common-6134bd89ba1d8a706c7842a2e73a6981.js"></script>
316<script defer="" src="/_expo/static/js/web/entry-351f70753b97e238b24d2848bb68271a.js"></script>
316<script>requestAnimationFrame(function(){$RT=performance.now()});</script>
316<script id="_R_">globalThis.__EXPO_ROUTER_HYDRATE__=true; 317globalThis.__EXPO_ROUTER_LOADER_DATA__ = JSON.parse("{\"/blog/index\":{\"posts\":[{\"_id\":\"post-agent-fixes-bugs-on-eas-simulator\",\"authors\":[{\"_id\":\"32d19983-c491-4815-a22e-3178c7e930bf\",\"department\":{\"_id\":\"7d332177-5a3c-429d-b65d-370265319986\",\"name\":\"Engineering\"},\"imageId\":\"image-56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512-png\",\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png\",\"name\":\"Rami Maalouf\"}],\"categories\":[{\"_id\":\"cf50102c-44b1-464a-b61d-ccdff68d3dd8\",\"name\":\"Development\"},{\"_id\":\"90f90c51-9a3f-47f1-8465-eaca066de295\",\"name\":\"React Native\"},{\"_id\":\"78475f7a-0c7b-4d67-96e0-1d07e730624a\",\"name\":\"AI\"},{\"_id\":\"cf50102c-44b1-464a-b61d-ccdff68d3dd8\",\"name\":\"Development\"}],\"estimatedReadingTime\":5,\"isFeatured\":false,\"mainImage\":{\"_id\":\"image-4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080-png\",\"altText\":\"Self healing apps? text over a layered app icon on a dark background\",\"caption\":null,\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png\"},\"metadataCanonicalUrl\":null,\"metadataDescription\":\"With EAS Workflows and EAS Simulator, a bug report becomes a pull request with a fix and recordings showing it works.\",\"numberOfCharacters\":4405,\"publishAt\":\"2026-09-22T20:45:00.000Z\",\"slug\":\"agent-fixes-bugs-on-eas-simulator\",\"tags\":[\"eas-simulator\",\"eas-workflows\",\"AI development\"],\"title\":\"What if your app could fix itself?\"},{\"_id\":\"post-build-ios-apps-on-windows-with-cloud-simulators\",\"authors\":[{\"_id\":\"32d19983-c491-4815-a22e-3178c7e930bf\",\"department\":{\"_id\":\"7d332177-5a3c-429d-b65d-370265319986\",\"name\":\"Engineering\"},\"imageId\":\"image-56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512-png\",\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png\",\"name\":\"Rami Maalouf\"}],\"categories\":[{\"_id\":\"cf50102c-44b1-464a-b61d-ccdff68d3dd8\",\"name\":\"Development\"},{\"_id\":\"90f90c51-9a3f-47f1-8465-eaca066de295\",\"name\":\"React Native\"},{\"_id\":\"78475f7a-0c7b-4d67-96e0-1d07e730624a\",\"name\":\"AI\"}],\"estimatedReadingTime\":9,\"isFeatured\":false,\"mainImage\":{\"_id\":\"image-3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012-png\",\"altText\":\"Rami looking surprised beside an iPhone marked Live, a Windows logo, and the words Running on Windows\",\"caption\":null,\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png\"},\"metadataCanonicalUrl\":null,\"metadataDescription\":\"Meet EAS Simulator, Expo's new service that gives every developer and every coding agent an iPhone in the cloud.\",\"numberOfCharacters\":7687,\"publishAt\":\"2026-09-14T13:15:30.123Z\",\"slug\":\"build-ios-apps-on-windows-with-cloud-simulators\",\"tags\":[\"eas-simulator\",\"AI development\",\"agentic development\",\"cloud simulator\"],\"title\":\"You don't need a Mac to develop iOS apps\"},{\"_id\":\"92e5b343-4905-4226-9820-93b87229d624\",\"authors\":[{\"_id\":\"c693a3ed-7ca1-48b0-a967-e350b15d26ea\",\"department\":{\"_id\":\"7d332177-5a3c-429d-b65d-370265319986\",\"name\":\"Engineering\"},\"imageId\":\"image-4acdf911df64151706d36c3c767f5a02f3182ead-870x870-png\",\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/4acdf911df64151706d36c3c767f5a02f3182ead-870x870.png\",\"name\":\"Keith Kurak\"}],\"categories\":[{\"_id\":\"cf50102c-44b1-464a-b61d-ccdff68d3dd8\",\"name\":\"Development\"},{\"_id\":\"0b74d38b-c0cd-433e-9e08-4b3cac739b4d\",\"name\":\"Product\"}],\"estimatedReadingTime\":10,\"isFeatured\":false,\"mainImage\":{\"_id\":\"image-7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350-png\",\"altText\":\"Why Expo is a great fit for new and existing React Native apps\",\"caption\":null,\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png\"},\"metadataCanonicalUrl\":null,\"metadataDescription\":\"What is Expo: the React Native framework for native iOS and Android apps. React Native vs native tradeoffs, Expo Modules, CNG, and AI agents on one ship path.\",\"numberOfCharacters\":9033,\"publishAt\":\"2026-09-11T16:00:00.000Z\",\"slug\":\"why-expo-is-a-great-fit-for-new-and-existing-react-native-apps\",\"tags\":[\"React Native\",\"EAS\",\"Continuous Native Development\",\"EAS Build\",\"EAS Submit\",\"EAS Update\",\"local development\"],\"title\":\"Why Expo is a great fit for new and existing apps\"},{\"_id\":\"2ca43937-7794-4575-a2d5-ab1ae6c545c0\",\"authors\":[{\"_id\":\"452224b9-9eb4-4189-9c27-48c1a2da5bd9\",\"department\":{\"_id\":\"b18f68da-9805-4a8f-a6e3-88b08dfb06bd\",\"name\":\"Product\"},\"imageId\":\"image-ca406c8fc5fab2819dae7128fe4a84429438aed1-225x225-jpg\",\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/ca406c8fc5fab2819dae7128fe4a84429438aed1-225x225.jpg\",\"name\":\"Jon S
317amp\"}],\"categories\":[{\"_id\":\"4d37da41-815a-43d3-9943-5ba40ac8445c\",\"name\":\"Users\"},{\"_id\":\"cf50102c-44b1-464a-b61d-ccdff68d3dd8\",\"name\":\"Development\"}],\"estimatedReadingTime\":8,\"isFeatured\":false,\"mainImage\":{\"_id\":\"image-ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350-png\",\"altText\":\"24 hours of Expo apps\",\"caption\":null,\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png\"},\"metadataCanonicalUrl\":null,\"metadataDescription\":\"I went a full day using only apps made with Expo. It mostly worked. The gaps tell you what to build next.\",\"numberOfCharacters\":7582,\"publishAt\":\"2026-09-10T13:15:54.752Z\",\"slug\":\"24-hours-of-expo\",\"tags\":[\"Expo apps\"],\"title\":\"Can you go 24 hours using only Expo apps? \"},{\"_id\":\"7346f62d-3db5-4d49-a95f-3b6cd9a121dc\",\"authors\":[{\"_id\":\"b4cbce31-e5b1-44e7-82c1-d5e6d4c49e69\",\"department\":{\"_id\":\"7d332177-5a3c-429d-b65d-370265319986\",\"name\":\"Engineering\"},\"imageId\":\"image-8818badc6caf10834981bc6034884092d0790c4a-400x400-jpg\",\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/8818badc6caf10834981bc6034884092d0790c4a-400x400.jpg\",\"name\":\"Tomasz Sapeta\"}],\"categories\":[{\"_id\":\"0b74d38b-c0cd-433e-9e08-4b3cac739b4d\",\"name\":\"Product\"},{\"_id\":\"90f90c51-9a3f-47f1-8465-eaca066de295\",\"name\":\"React Native\"}],\"estimatedReadingTime\":13,\"isFeatured\":false,\"mainImage\":{\"_id\":\"image-a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350-png\",\"altText\":\"An early look at Expo Modules 2.0\",\"caption\":null,\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png\"},\"metadataCanonicalUrl\":null,\"metadataDescription\":\"Expo Modules 2.0 turns a native module into an annotated Swift or Kotlin class. No DSL, no boilerplate, and up to 5.6x faster calls. Try it on iOS in SDK 57.\",\"numberOfCharacters\":11659,\"publishAt\":\"2026-09-08T16:15:09.416Z\",\"slug\":\"an-early-look-at-expo-modules-2-0\",\"tags\":[\"Expo Modules\",\"Performance\",\"SDK 57\"],\"title\":\"An early look at Expo Modules 2.0\"},{\"_id\":\"5574b440-546b-4584-a470-da5883e6285c\",\"authors\":[{\"_id\":\"9626579b-e459-414d-8d4b-f86e33bc8e5e\",\"department\":{\"_id\":\"7d332177-5a3c-429d-b65d-370265319986\",\"name\":\"Engineering\"},\"imageId\":\"image-98614494e9f5b180a1d3bc70e69007dd1d5d955c-1018x1012-png\",\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/98614494e9f5b180a1d3bc70e69007dd1d5d955c-1018x1012.png\",\"name\":\"Aman Mittal\"}],\"categories\":[{\"_id\":\"78475f7a-0c7b-4d67-96e0-1d07e730624a\",\"name\":\"AI\"}],\"estimatedReadingTime\":20,\"isFeatured\":false,\"mainImage\":{\"_id\":\"image-c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350-png\",\"altText\":\"12 AEO practices to make your documentation AI-ready\",\"caption\":null,\"imageUrl\":\"https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png\"},\"metadataCanonicalUrl\":null,\"metadataDescription\":\"AEO is the new hotness - if AI canât see it, does it even exist? In this blog, we will cover 12 tips how to make your docs accessible to AI agents.\",\"numberOfCharacters\":17676,\"publishAt\":\"2026-09-03T15:45:01.171Z\",\"slug\":\"aeo-practices-to-make-your-documentation-ai-ready\",\"tags\":[\"AEO\",\"Documentation\",\"AI agents\",\"Expo\"],\"title\":\"12 AEO practices to make your documentation AI-ready\"}],\"totalCount\":227,\"categories\":[{\"name\":\"AI\",\"numberOfPosts\":8},{\"name\":\"Development\",\"numberOfPosts\":152},{\"name\":\"Product\",\"numberOfPosts\":89},{\"name\":\"React Native\",\"numberOfPosts\":93},{\"name\":\"Security notices\",\"numberOfPosts\":2},{\"name\":\"Users\",\"numberOfPosts\":66}],\"meta\":{\"title\":\"Expo blog\",\"description\":\"Latest news, articles and announcements about Expo and Expo services from the members of the Expo team and guests.\",\"ogImage\":\"https://og.expo.dev/?theme=universe\\u0026title=Expo+blog\\u0026description=Latest+news%2C+articles+and+announcements+about+Expo+and+Expo+services+from+the+members+of+the+Expo+team+and+guests.\\u0026iconName=Announcement03DuotoneIcon\",\"url\":\"https://expo.dev/blog\",\"canonicalUrl\":\"https://expo.dev/blog\"}}}");</script>
317<div hidden id="S:0"><div class="css-g5y9jx r-13awgt0"><div aria-hidden="true" class="pointer-events-none -mb-px h-px"></div><nav data-scrolled="false" class="sticky top-0 z-50 flex items-center justify-center bg-default border-b-[0.5px] border-b-transparent transition-colors duration-150 dark:bg-screen" data-track-location="header"><div class="mx-auto w-full max-w-screen-xl px-4 md:px-6 static flex items-center justify-between py-4"><div class="flex flex-row items-center gap-0.5" data-track-context="desktop_navigation" data-track-click="HEADER_LINK_CLICKED"><div class="mr-4" data-track-context="header_branding" data-track-click="HEADER_LOGO_CLICKED"><button class="flex cursor-pointer" type="button" aria-label="Navigate to home"><svg viewBox="0 0 71 20" fill="none" role="img" class="icon-md w-18 text-default" title="Expo home"><path d="M9.258 6.342c.158-.23.331-.26.472-.26.14 0 .374.03.532.26 2.06 2.806 6.332 10.208 6.727 10.611.585.597 1.388.225 1.854-.452.46-.667.587-1.135.587-1.634 0-.34-6.653-12.614-7.324-13.636C11.462.248 11.252 0 10.15 0h-.825c-1.1 0-1.259.248-1.903 1.23C6.75 2.254.097 14.528.097 14.868c0 .5.127.967.587 1.634.466.677 1.269 1.05 1.854.452.395-.403 4.661-7.805 6.72-10.61zm14.941-5.237v15.344h9.35v-3.113h-6.125v-3.244h5.45V6.98h-5.45V4.218h6.125V1.105h-9.35zM46.25 16.449l-3.88-5.568 3.619-5.195h-3.662L40.54 8.23l-1.765-2.543h-3.706l3.618 5.217-3.857 5.546h3.661l2.027-2.915 2.027 2.915h3.705zm7.572-10.982c-1.482 0-2.637.614-3.378 1.732V5.686H47.37V20h3.073v-5.063c.74 1.117 1.896 1.731 3.378 1.731 2.768 0 4.97-2.52 4.97-5.611 0-3.091-2.202-5.59-4.97-5.59zm-.697 8.242c-1.504 0-2.681-1.14-2.681-2.652 0-1.49 1.177-2.653 2.68-2.653 1.483 0 2.681 1.184 2.681 2.653 0 1.49-1.198 2.652-2.68 2.652zm12.188-8.242c-3.16 0-5.558 2.411-5.558 5.612 0 3.2 2.397 5.59 5.557 5.59 3.139 0 5.558-2.39 5.558-5.59 0-3.2-2.42-5.612-5.558-5.612zm0 2.96c1.438 0 2.55 1.117 2.55 2.652 0 1.49-1.112 2.63-2.55 2.63-1.46 0-2.55-1.14-2.55-2.63 0-1.535 1.09-2.653 2.55-2.653z" fill="currentColor"></path></svg></button></div><div class="flex flex-row items-center gap-px max-lg:hidden"><a target="_blank" rel="noopener noreferrer" class="flex h-9 items-center justify-center gap-1 rounded-3xl px-3 text-sm font-medium whitespace-nowrap text-secondary transition active:scale-98 hocus:bg-button-quaternary-hover hocus:text-default max-md:hidden" href="https://docs.expo.dev">Docs<svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="translate-z shrink-0 icon-sm text-icon-secondary" role="img"><g id="arrow-up-right-outline-icon"><path id="Icon" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 17L17 7M17 17V7H7"></path></g></svg></a><button class="cursor-pointer inline-flex items-center border border-solid font-medium whitespace-nowrap transition h-9 rounded-[calc(9*4px)] px-4 text-sm border-button-quaternary bg-button-quaternary shadow-none active:scale-98 hocus:bg-button-quaternary-hover relative gap-1 pr-2 pl-3 text-secondary" type="button" data-track-ref-id="header_product_menu" aria-expanded="false" aria-controls="mega-menu"><span class="flex self-center leading-none text-inherit"><div class="transition-opacity">Product</div></span><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="translate-z shrink-0 icon-sm size-4.5! text-icon-secondary transition-transform duration-300 ease-in-out" role="img"><g id="chevron-down-outline-icon"><path id="Icon" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 9L12 15L18 9"></path></g></svg></button><button class="cursor-pointer inline-flex items-center border border-solid font-medium whitespace-nowrap transition h-9 rounded-[calc(9*4px)] px-4 text-sm border-button-quaternary bg-button-quaternary shadow-none active:scale-98 hocus:bg-button-quaternary-hover relative gap-1 pr-2 pl-3 text-secondary" type="button" data-track-ref-id="header_solutions_menu" aria-expanded="false" aria-controls="mega-menu"><span class="flex self-center leading-none text-inherit"><div class="transition-opacity">Solutions</div></span><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="translate-z shrink-0 icon-sm size-4.5! text-icon-secondary transition-transform duration-300 ease-in-out" role="img"><g id="chevron-down-outline-icon"><path id="Icon" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 9L12 15L18 9"></path></g></svg></button><div aria-hidden="true" class="absolute inset-x-0 top-full h-[calc(100dvh-100%)] bg-palette-black/40 backdrop-blur transition-opacity ease-in-out motion-reduce:transition-none dark:bg-palette-white/10 pointer-events-none opacity-0 duration-150"></div><div id="mega-menu" aria-hidden="true" inert="" class="absolute inset-x-0 top-full pointer-events-none" data-track-ref="header_product_menu"><div class="relative z-10 grid transition-[grid-template-rows] ease-in-out motion-reduce:transition-none grid-rows-[0fr] duration-500"><div class="overflow-hidden"><div class="bg-default"><div class="relative mx-auto w-full max-w-screen-xl px-4 md:px-6 flex animate-[fadeIn_300ms_ease-in-out] gap-4 pt-10 pb-16 transition-opacity duration-300 ease-in-out motion-reduce:animate-none motion-reduce:transition-none opacity-0"><div class="flex w-60 flex-col gap-6" data-track-context="product_column"><p class="eyebrow text-quaternary">Dev tools</p><div class="flex flex-col gap-2"><a target="_blank" rel="noopener noreferrer" tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="https://docs.expo.dev/versions/latest/"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Expo SDK</span><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="translate-z shrink-0 icon-sm text-icon-secondary" role="img"><g id="arrow-up-right-outline-icon"><path id="Icon" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 17L17 7M17 17V7H7"></path></g></svg></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/tools"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Expo CLI</span></a><a target="_blank" rel="noopener noreferrer" tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="https://docs.expo.dev/mcp/"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Expo MCP</span><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="translate-z shrink-0 icon-sm text-icon-secondary" role="img"><g id="arrow-up-right-outline-icon"><path id="Icon" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 17L17 7M17 17V7H7"></path></g></svg></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/go"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Expo Go</span></a><a target="_blank" rel="noopener noreferrer" tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="https://snack.expo.dev/"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Snack</span><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="translate-z shrink-0 icon-sm text-icon-secondary" role="img"><g id="arrow-up-right-outline-icon"><path id="Icon" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 17L17 7M17 17V7H7"></path></g></svg></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/orbit"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">
317Orbit</span></a></div></div><div class="flex w-60 flex-col gap-6" data-track-context="product_column"><p class="eyebrow text-quaternary">Services</p><div class="flex flex-col gap-2"><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/services/workflows"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Workflows</span></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/services#build"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Build</span></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/services#submit"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Submit</span></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/services#update"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Update</span></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/services/hosting"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Hosting</span></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/services/launch"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Launch</span></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/services/eas-observe"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Observe</span><div class="inline-flex items-center rounded-xl min-h-5 gap-1 px-2.5 bg-element text-secondary"><span class="py-0.5 font-medium text-color-inherit text-xs leading-tight">new</span></div></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/services/simulators"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Simulators</span><div class="inline-flex items-center rounded-xl min-h-5 gap-1 px-2.5 bg-element text-secondary"><span class="py-0.5 font-medium text-color-inherit text-xs leading-tight">preview</span></div></a></div></div><div class="flex w-60 flex-col gap-6" data-track-context="product_column"><p class="eyebrow text-quaternary">Explore</p><div class="flex flex-col gap-2"><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/changelog"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Changelog</span></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/services"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Expo Services (EAS)</span></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/contact"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">Contact</span></a><a tabindex="-1" data-track-click="HEADER_LINK_CLICKED" class="group flex items-center gap-2 select-none" href="/ai"><span class="text-base leading-[1.4] font-medium text-default transition-colors group-hover:text-secondary group-focus-visible:text-secondary">AI</span></a></div></div></div></div></div></div></div><a class="flex h-9 items-center justify-center gap-1 rounded-3xl px-3 text-sm font-medium whitespace-nowrap text-secondary transition active:scale-98 hocus:bg-button-quaternary-hover hocus:text-default max-md:hidden" href="/solutions/enterprise">Enterprise</a><a class="flex h-9 items-center justify-center gap-1 rounded-3xl px-3 text-sm font-medium whitespace-nowrap text-secondary transition active:scale-98 hocus:bg-button-quaternary-hover hocus:text-default max-md:hidden" href="/pricing">Pricing</a><a href="/blog" aria-current="page" class="flex h-9 items-center justify-center gap-1 rounded-3xl px-3 text-sm font-medium whitespace-nowrap transition active:scale-98 hocus:bg-button-quaternary-hover hocus:text-default max-md:hidden bg-element text-default">Blog</a></div></div><div class="max-lg:hidden" data-track-context="desktop_header_actions"><div class="flex items-center gap-2"><a target="_blank" rel="noopener noreferrer" aria-label="Star us on GitHub" class="inline-flex items-center gap-2 border border-solid font-medium whitespace-nowrap transition h-9 rounded-[calc(9*4px)] px-4 text-sm border-button-quaternary bg-button-quaternary shadow-none active:scale-98 hocus:bg-button-quaternary-hover relative pl-3 text-secondary" type="button" data-track-click="STAR_US_ON_GITHUB_CLICKED" href="https://github.com/expo/expo"><svg fill="none" viewBox="0 0 24 24" class="translate-z shrink-0 icon-sm text-icon-secondary" role="img"><g id="github-custom-icon"><path id="github_2" fill="currentColor" d="M12 1.60205C5.9225 1.60205 1 6.41965 1 12.3676C1 17.1314 4.14875 21.155 8.52125 22.5815C9.07125 22.6757 9.2775 22.3527 9.2775 22.0701C9.2775 21.8144 9.26375 20.9666 9.26375 20.065C6.5 20.5629 5.785 19.4056 5.565 18.8001C5.44125 18.4906 4.905 17.5351 4.4375 17.2794C4.0525 17.0776 3.5025 16.5797 4.42375 16.5662C5.29 16.5528 5.90875 17.3467 6.115 17.6697C7.105 19.298 8.68625 18.8404 9.31875 18.5578C9.415 17.8581 9.70375 17.3871 10.02 17.1179C7.5725 16.8488 5.015 15.9203 5.015 11.8024C5.015 10.6317 5.44125 9.66278
3176.1425 8.90919C6.0325 8.64005 5.6475 7.53658 6.2525 6.05631C6.2525 6.05631 7.17375 5.77372 9.2775 7.15978C10.1575 6.91756 11.0925 6.79645 12.0275 6.79645C12.9625 6.79645 13.8975 6.91756 14.7775 7.15978C16.8813 5.76026 17.8025 6.05631 17.8025 6.05631C18.4075 7.53658 18.0225 8.64005 17.9125 8.90919C18.6138 9.66278 19.04 10.6182 19.04 11.8024C19.04 15.9337 16.4688 16.8488 14.0213 17.1179C14.42 17.4544 14.7638 18.1003 14.7638 19.1096C14.7638 20.5495 14.75 21.7068 14.75 22.0701C14.75 22.3527 14.9563 22.6891 15.5063 22.5815C17.69 21.86 19.5875 20.4865 20.9318 18.6542C22.2761 16.822 22.9994 14.6233 23 12.3676C23 6.41965 18.0775 1.60205 12 1.60205Z"></path></g></svg><span class="flex self-center leading-none text-inherit select-none"><div class="transition-opacity">50K</div></span></a><div class="flex items-center gap-2"><a class="inline-flex items-center gap-2 border border-solid font-medium whitespace-nowrap transition h-9 rounded-[calc(9*4px)] px-4 text-sm border-button-tertiary bg-button-tertiary text-button-tertiary shadow-none active:scale-98 hocus:bg-button-tertiary-hover relative" type="button" data-track-click="HEADER_LOGIN_CLICKED" href="/login"><span class="flex self-center leading-none text-inherit select-none"><div class="transition-opacity">Log in</div></span></a><a class="inline-flex items-center gap-2 border border-solid font-medium whitespace-nowrap transition h-9 rounded-[calc(9*4px)] px-4 text-sm border-button-primary bg-button-primary text-button-primary active:scale-98 hocus:bg-button-primary-hover relative" type="button" data-track-click="HEADER_SIGNUP_CLICKED" href="/signup"><span class="flex self-center leading-none text-inherit select-none"><div class="transition-opacity">Sign up</div></span></a></div></div></div><div class="hidden items-center max-lg:flex"><div class="flex items-center"><button class="cursor-pointer relative flex size-9 items-center justify-center rounded-3xl bg-element can-hover:bg-hover" type="button" id="mobile-menu" aria-label="Open menu"><div class="absolute top-[14.64%] right-[14.64%] z-10 size-1.75 translate-x-1/2 -translate-y-1/2 rounded-full bg-palette-blue11 transition-opacity duration-300 opacity-0"></div><div class="relative flex size-4 flex-col items-center justify-center"><span class="absolute h-[1.5px] w-3.5 rounded-full bg-icon-default transition-transform duration-300 motion-reduce:transition-none -translate-y-0.75"></span><span class="absolute h-[1.5px] w-3.5 rounded-full bg-icon-default transition-transform duration-300 motion-reduce:transition-none translate-y-0.75"></span></div></button></div></div></div></nav><!--$?--><template id="B:1"></template><!--/$--><footer data-track-location="footer"><div class="relative mx-auto w-full max-w-screen-xl px-4 md:px-6"><h2 class="sr-only">Site footer</h2><nav class="flex gap-10 py-10 lg:gap-4 lg:pt-22 lg:pb-12 max-lg:flex-col" aria-label="Expo Directory" role="navigation"><div class="flex flex-col gap-6 md:flex-row lg:w-full lg:max-w-75 lg:flex-col"><a data-visual-mask="true" class="relative block shrink-0 self-start overflow-hidden rounded-[12px] bg-palette-black shadow-[0_5px_10px_0_rgba(0,0,0,0.05),0_15px_25px_0_rgba(0,0,0,0.12)] md:mr-auto dark:shadow-[0_5px_10px_0_rgba(255,255,255,0.05),0_15px_25px_0_rgba(255,255,255,0.12)]" data-track-context="footer_branding" data-track-click="FOOTER_LOGO_CLICKED" href="/"><canvas aria-hidden="true" class="block bg-palette-black" style="width:44px;height:44px"></canvas><div class="pointer-events-none absolute inset-0 rounded-[12px] shadow-[inset_0_0_0_1px_rgba(255,255,255,0.3)]"></div><img src="/static/images/exponential.svg" alt="Expo" loading="lazy" class="pointer-events-none absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"/></a><div class="flex flex-row items-center gap-3 md:max-lg:gap-4 lg:h-full lg:flex-col lg:items-start lg:justify-start lg:pt-6 max-md:rounded-xl max-md:bg-subtle max-md:p-4"><div class="flex flex-col items-start gap-2"><p class="font-mono text-xs leading-none text-secondary uppercase"><span class="inline-block h-2.5 w-1.5 bg-[#0072DE]"></span> Newsletter</p><p class="text-sm leading-none font-medium">Stay in touch with <span class="max-sm:hidden">all things</span> Expo</p></div><button class="cursor-pointer inline-flex items-center border border-solid whitespace-nowrap transition gap-1.5 h-8 rounded-[calc(8*4px)] px-3 text-xs border-button-primary bg-button-primary text-button-primary active:scale-98 hocus:bg-button-primary-hover relative border-palette-blue9! bg-palette-blue9! font-semibold text-palette-white! hocus:bg-palette-blue10! max-md:ml-auto" type="button"><span class="flex self-center leading-none text-inherit"><div class="transition-opacity">Subscribe</div></span></button><div hidden=""></div></div></div><div class="grid w-full grid-cols-1 gap-4 gap-y-10 md:grid-cols-5 min-[300px]:grid-cols-2"><div data-track-context="product-footer-links"><h3 class="mb-5 text-base font-semibold">Product</h3><ul class="m-0 flex list-none flex-col items-start gap-3 text-sm"><li class="m-0"><a target="_blank" rel="noopener noreferrer" class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="STAR_US_ON_GITHUB_CLICKED" href="https://github.com/expo/expo">Star us on GitHub</a></li><li class="m-0"><a target="_blank" rel="noopener noreferrer" class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="https://github.com/expo/expo/tree/main/packages/%40expo/cli">Expo CLI on GitHub</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/services">Expo Services (EAS)</a></li><li class="m-0"><a target="_blank" rel="noopener noreferrer" class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="https://github.com/expo/eas-cli">EAS CLI on GitHub</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/go">Expo Go</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/orbit">Expo Orbit</a></li><li class="m-0"><a target="_blank" rel="noopener noreferrer" class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="https://snack.expo.dev">Snack</a></li></ul></div><div data-track-context="resources-footer-links"><h3 class="mb-5 text-base font-semibold">Resources</h3><ul class="m-0 flex list-none flex-col items-start gap-3 text-sm"><li class="m-0"><a target="_blank" rel="noopener noreferrer" class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="https://docs.expo.dev/">Documentation</a></li><li class="m-0"><a href="/blog" class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED">Blog</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/changelog">Changelog</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/support">Support</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/trust">Trust Center</a></li><li class="m-0"><a target="_blank" rel="noopener" class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" referrerPolicy="origin" data-track-click="DISCORD_LINK_CLICKED" href="https://chat.expo.dev">Join Discord</a></li></ul></div><div data-track-context="solutions-footer-links"><h3 class="mb-5 text-base font-semibold">Solutions</h3><ul class="m-0 flex list-none flex-col items-start gap-3 text-sm"><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/solutions/enterprise">Enterprise</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/solutions/startups">Startup</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/solutions/solo-devs">Solo devs</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/solutions/expo-for-react-web-devs">React web devs</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/solutions/ecom">E-commerce</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/solutions/crypto">Crypto</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/solutions/financial-services">Finserv</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/solutions/qsr">QSR</a></li></ul></div><div data-track-context="company-footer-links"><h3 class="mb-5 text-base font-semibold">Company</h3><ul class="m-0 flex list-none flex-col items-start gap-3 text-sm"><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/home">Home</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/pricing">Pricing</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/customers">Customers</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/consultants">Consultants</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/about">About</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/brand">Branding</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/careers">Careers</a></li></ul></div><div data-track-context="legal-footer-links"><h3 class="mb-5 text-base font-semibold">Legal</h3><ul class="m-0 flex list-none flex-col items-start gap-3 text-sm"><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/terms">Terms of service</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/acceptable-use">Acceptable use policy</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/privacy">Privacy policy</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/privacy-explained">Privacy explained</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/privacy/cookies">Cookie policy</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/security">Security & Compliance</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/trust">Enterprise trust</a></li><li class="m-0"><a class="hocus:opacity-80 text-secondary transition-colors hocus:text-default" data-track-click="FOOTER_LINK_CLICKED" href="/community-guidelines">Community guidelines</a></li></ul></div></div></nav><section class="py-6 text-xs text-secondary max-md:border-t max-md:border-default"><div class="flex flex-wrap items-center gap-3 md:gap-2 max-md:flex-col"><span class="shrink">© <!-- -->2026<!-- --> 650 Industries, Inc.</span><a target="_blank" rel="noopener noreferrer" aria-label="All systems operational" class="inline-flex items-center border border-solid font-medium whitespace-nowrap transition rounded-[calc(9*4px)] border-button-quaternary bg-button-quaternary text-button-quaternary shadow-none active:scale-98 hocus:bg-button-quaternary-hover relative h-auto gap-1 px-1 py-0 text-xs" type="button" data-track-click="STATUS_PAGE_LINK_CLICKED" href="https://status.expo.dev">
317<span class="mr-1 size-2 rounded-full bg-palette-green10"></span><span class="flex self-center leading-none text-inherit select-none"><div class="transition-opacity">All systems operational</div></span><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="translate-z shrink-0 icon-sm text-button-quaternary-icon" role="img"><g id="arrow-up-right-outline-icon"><path id="Icon" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 17L17 7M17 17V7H7"></path></g></svg></a><div class="text-xs [&_button]:flex [&_button]:gap-1 [&_button]:text-xs [&_button]:leading-none [&_svg]:h-3"><button type="button" class="text-secondary hocus:text-default inline-flex items-center gap-1.5 text-sm transition-colors cursor-pointer" aria-label="Your Privacy Choices"><svg width="30" height="16" viewBox="0 0 743 376" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><rect width="742.6" height="376" rx="188" fill="white"></rect><rect x="14.2146" y="14.2146" width="714.171" height="347.571" rx="173.785" stroke="#405D96" stroke-width="28.4292"></rect><path d="M421.723 0H554.6C658.43 0 742.6 84.1705 742.6 188C742.6 291.83 658.43 376 554.6 376H320.877L421.723 0Z" fill="#405D96"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M315.783 112.736C321.683 117.519 322.591 126.181 317.809 132.084L216.494 257.149C207.93 267.721 192.099 268.548 182.48 258.926L123.211 199.638C117.84 194.266 117.84 185.556 123.211 180.184C128.581 174.812 137.288 174.812 142.659 180.184L198.33 235.873L296.44 114.763C301.222 108.86 309.882 107.953 315.783 112.736Z" fill="#405D96"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M456.576 106.585C462.095 101.365 470.799 101.608 476.017 107.129L608.556 247.338C613.774 252.858 613.531 261.565 608.013 266.785C602.494 272.005 593.79 271.761 588.572 266.241L456.033 126.031C450.814 120.511 451.058 111.804 456.576 106.585Z" fill="white"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M610.222 108.733C615.592 114.106 615.592 122.815 610.222 128.188L473.815 264.636C468.445 270.008 459.738 270.008 454.367 264.636C448.997 259.264 448.997 250.554 454.367 245.182L590.774 108.733C596.144 103.361 604.851 103.361 610.222 108.733Z" fill="white"></path></svg><span class="font-semibold">Your Privacy Choices</span></button></div><div class="flex items-center text-secondary md:ml-auto max-md:mt-10 max-md:mb-2"><div class="flex gap-4" data-track-context="social_links"><a target="_blank" rel="noopener noreferrer" class="inline-flex items-center border border-solid font-medium whitespace-nowrap transition gap-1.5 rounded-[calc(8*4px)] text-xs border-button-quaternary bg-button-quaternary shadow-none active:scale-98 hocus:bg-button-quaternary-hover relative h-6 p-1 text-inherit hocus:text-default" type="button" title="GitHub" data-track-click="SOCIAL_LINK_CLICKED" href="https://www.github.com/expo/expo"><span class="flex self-center leading-none text-inherit select-none"><div class="transition-opacity"><svg fill="none" viewBox="0 0 24 24" class="translate-z shrink-0 icon-sm text-inherit" role="img" title="GitHub" width="16" height="16"><g id="github-custom-icon"><path id="github_2" fill="currentColor" d="M12 1.60205C5.9225 1.60205 1 6.41965 1 12.3676C1 17.1314 4.14875 21.155 8.52125 22.5815C9.07125 22.6757 9.2775 22.3527 9.2775 22.0701C9.2775 21.8144 9.26375 20.9666 9.26375 20.065C6.5 20.5629 5.785 19.4056 5.565 18.8001C5.44125 18.4906 4.905 17.5351 4.4375 17.2794C4.0525 17.0776 3.5025 16.5797 4.42375 16.5662C5.29 16.5528 5.90875 17.3467 6.115 17.6697C7.105 19.298 8.68625 18.8404 9.31875 18.5578C9.415 17.8581 9.70375 17.3871 10.02 17.1179C7.5725 16.8488 5.015 15.9203 5.015 11.8024C5.015 10.6317 5.44125 9.66278 6.1425 8.90919C6.0325 8.64005 5.6475 7.53658 6.2525 6.05631C6.2525 6.05631 7.17375 5.77372 9.2775 7.15978C10.1575 6.91756 11.0925 6.79645 12.0275 6.79645C12.9625 6.79645 13.8975 6.91756 14.7775 7.15978C16.8813 5.76026 17.8025 6.05631 17.8025 6.05631C18.4075 7.53658 18.0225 8.64005 17.9125 8.90919C18.6138 9.66278 19.04 10.6182 19.04 11.8024C19.04 15.9337 16.4688 16.8488 14.0213 17.1179C14.42 17.4544 14.7638 18.1003 14.7638 19.1096C14.7638 20.5495 14.75 21.7068 14.75 22.0701C14.75 22.3527 14.9563 22.6891 15.5063 22.5815C17.69 21.86 19.5875 20.4865 20.9318 18.6542C22.2761 16.822 22.9994 14.6233 23 12.3676C23 6.41965 18.0775 1.60205 12 1.60205Z"></path></g></svg></div></span></a><a target="_blank" rel="noopener noreferrer" class="inline-flex items-center border border-solid font-medium whitespace-nowrap transition gap-1.5 rounded-[calc(8*4px)] text-xs border-button-quaternary bg-button-quaternary shadow-none active:scale-98 hocus:bg-button-quaternary-hover relative h-6 p-1 text-inherit hocus:text-default" type="button" title="X" data-track-click="SOCIAL_LINK_CLICKED" href="https://www.twitter.com/expo"><span class="flex self-center leading-none text-inherit select-none"><div class="transition-opacity"><svg fill="none" viewBox="0 0 24 24" class="translate-z shrink-0 icon-sm text-inherit" role="img" title="X" width="16" height="16"><g id="x-logo-custom-icon"><path id="Vector" fill="currentColor" d="M13.9027 10.4686L21.3482 2H19.5838L13.119 9.3532L7.95547 2H2L9.8082 13.1193L2 22H3.76443L10.5915 14.2348L16.0445 22H22L13.9023 10.4686H13.9027ZM11.4861 13.2173L10.695 12.1101L4.40018 3.29968H7.11025L12.1902 10.4099L12.9813 11.5172L19.5847 20.7594H16.8746L11.4861 13.2177V13.2173Z"></path></g></svg></div></span></a><a rel="noopener" referrerPolicy="origin" class="inline-flex items-center border border-solid font-medium whitespace-nowrap transition gap-1.5 rounded-[calc(8*4px)] text-xs border-button-quaternary bg-button-quaternary shadow-none active:scale-98 hocus:bg-button-quaternary-hover relative h-6 p-1 text-inherit hocus:text-default" type="button" title="Discord" data-track-click="SOCIAL_LINK_CLICKED" href="https://chat.expo.dev"><span class="flex self-center leading-none text-inherit select-none"><div class="transition-opacity"><svg fill="none" viewBox="0 0 24 24" class="translate-z shrink-0 icon-sm text-inherit" role="img" title="Discord" width="16" height="16"><g id="discord-custom-icon"><path id="Vector" fill="currentColor" d="M18.9556 6.25999C17.6518 5.67 16.2671 5.24 14.8218 5C14.6399 5.31 14.4377 5.73 14.2962 6.06C12.759 5.83999 11.2328 5.83999 9.71672 6.06C9.57521 5.73 9.36295 5.31 9.19112 5C7.73573 5.24 6.35105 5.67 5.05634 6.25999C2.4386 10.08 1.73111 13.81 2.08485 17.4899C3.82327 18.7399 5.50106 19.5 7.14953 20C7.55382 19.46 7.91768 18.8799 8.231 18.27C7.63468 18.05 7.06868 17.78 6.5229 17.4599C6.6644 17.36 6.8059 17.25 6.93729 17.14C10.2322 18.63 13.801 18.63 17.0555 17.14C17.197 17.25 17.3284 17.36 17.4699 17.4599C16.9241 17.78 16.3581 18.05 15.7618 18.27C16.0751 18.8799 16.439 19.46 16.8432 20C18.4907 19.5 20.1786 18.7399 21.9079 17.4899C22.3425 13.23 21.2196 9.53002 18.9556 6.25999ZM8.68581 15.22C7.6953 15.22 6.88674 14.33 6.88674 13.24C6.88674 12.15 7.67509 11.26 8.68581 11.26C9.68639 11.26 10.505 12.15 10.4848 13.24C10.4848 14.33 9.68639 15.22 8.68581 15.22ZM15.3272 15.22C14.3367 15.22 13.5271 14.33 13.5271 13.24C13.5271 12.15 14.3164 11.26 15.3272 11.26C16.3278 11.26 17.1464 12.15 17.1262 13.24C17.1262 14.33 16.3379 15.22 15.3272 15.22Z"></path></g></svg></div></span></a><a target="_blank" rel="noopener noreferrer" class="inline-flex items-center border border-solid font-medium whitespace-nowrap transition gap-1.5 rounded-[calc(8*4px)] text-xs border-button-quaternary bg-button-quaternary shadow-none active:scale-98 hocus:bg-button-quaternary-hover relative h-6 p-1 text-inherit hocus:text-default" type="button" title="Bluesky" data-track-click="SOCIAL_LINK_CLICKED" href="https://bsky.app/profile/expo.dev"><span class="flex self-center leading-none text-inherit select-none"><div class="transition-opacity"><svg fill="none" viewBox="0 0 24 24" class="translate-z shrink-0 icon-sm text-inherit" role="img" title="Bluesky" width="16" height="16"><g id="bluesky-custom-icon"><path id="Vector" fill="currentColor" d="M12 10.9855C11.0944 9.20223 8.62822 5.87897 6.33526 4.23997C4.13873 2.66991 3.30078 2.94195 2.75144 3.19327C2.11561 3.48417 2 4.47254 2 5.05405C2 5.63555 2.31486 9.82155 2.52023 10.5203C3.19881 12.829 5.61446 13.6091 7.83911 13.3588C7.95283 13.3417 8.06817 13.3259 8.18494 13.3113C8.07039 13.3299 7.955 13.3457 7.83911 13.3588C4.57891 13.8476 1.68354 15.0506 5.48101 19.3311C9.65822 23.7101 11.2058 18.3921 12 15.6957C12.7942 18.3921 13.7089 23.5184 18.4442 19.3311C22 15.6957 19.4211 13.8478 16.1609 13.3589C16.045 13.3458 15.9296 13.33 15.8151 13.3115C15.9318 13.326 16.0472 13.3418 16.1609 13.3589C18.3856 13.6093 20.8012 12.8291 21.4798 10.5205C21.6852 9.82171 22 5.63569 22 5.05419C22 4.47269 21.8844 3.48432 21.2486 3.19342C20.6992 2.94209 19.8
317613 2.67005 17.6647 4.24012C15.3718 5.87912 12.9056 9.20223 12 10.9855Z"></path></g></svg></div></span></a></div></div><button class="cursor-pointer items-center border border-solid font-medium whitespace-nowrap transition text-button-tertiary shadow-none active:scale-98 relative flex transform-none justify-between truncate border-default active:scale-100! [&>span]:min-w-0 [&>span]:flex-1 [&>span]:overflow-hidden bg-default dark:hocus:bg-subtle hocus:bg-element h-8 min-h-8 min-w-0 flex-nowrap gap-2 rounded-2xl p-2 text-xs lg:ml-2" type="button" data-form-field-control="true" aria-label="Theme selector" role="combobox" aria-expanded="false" aria-autocomplete="none" dir="ltr" data-state="closed"><span class="flex self-center leading-none text-inherit"><div class="transition-opacity"><span aria-label="auto" style="pointer-events:none"><div class="flex w-full min-w-0 items-center gap-2 overflow-hidden text-left text-sm font-normal whitespace-nowrap"><span aria-hidden="true"><svg viewBox="0 0 24 24" fill="currentColor" class="text-icon-default translate-z shrink-0 icon-sm" role="img"><g id="contrast-02-solid-icon"><path id="Solid" fill-rule="evenodd" d="M1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12ZM21 12C21 16.4272 17.8034 20.10
31778 13.5924 20.8596C13.1385 20.9406 12.9116 20.9811 12.6594 20.8897C12.4608 20.8178 12.24 20.6329 12.1343 20.4501C12 20.2178 12 19.9452 12 19.4V4.6C12 4.0548 12 3.78219 12.1343 3.54993C12.24 3.36711 12.4608 3.18221 12.6594 3.11028C12.9116 3.0189 13.1385 3.05941 13.5924 3.14043C17.8034 3.89223 21 7.57281 21 12Z" clip-rule="evenodd"></path></g></svg></span><span class="min-w-0 flex-1 truncate">Auto</span></div></span></div></span><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="translate-z icon-sm shrink-0 text-icon-secondary" role="img"><g id="chevron-down-outline-icon"><path id="Icon" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 9L12 15L18 9"></path></g></svg></button><select aria-hidden="true" tabindex="-1" style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></select><div hidden="" data-track-context="theme_selector"></div></div></section></div></footer></div></div>
317<script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0}; 318$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script>
318<div hidden id="S:1"><!--$?--><template id="B:2"></template><main class="animate-pulse"><div class="relative mx-auto w-full max-w-screen-xl px-4 md:px-6 pt-20 pb-0 max-md:px-6 max-md:pt-10"><div class="mb-8 h-9 w-48 rounded-md bg-hover max-md:mb-6"></div><div class="flex gap-6 max-md:hidden"><div class="aspect-video w-2/3 shrink-0 rounded-3xl bg-hover shadow-md"></div><div class="flex flex-1 flex-col justify-between px-4 py-6"><div class="flex flex-col gap-6"><div class="h-3 w-36 rounded-md bg-hover"></div><div class="flex flex-col gap-3"><div class="h-8 w-full rounded-md bg-hover"></div><div class="h-8 w-3/4 rounded-md bg-hover"></div><div class="mt-2 h-4 w-full rounded-md bg-hover"></div><div class="h-4 w-2/3 rounded-md bg-hover"></div></div></div><div class="mt-auto flex items-center gap-2"><div class="size-8 rounded-full bg-hover"></div><div class="h-4 w-28 rounded-md bg-hover"></div></div></div></div><div class="grid grid-cols-2 gap-x-10 gap-y-16 pt-16 max-md:grid-cols-1 max-md:gap-y-10 max-md:pt-0"><div class="flex flex-col gap-6 rounded-xl max-md:gap-4"><div class="rounded-3xl shadow-md max-md:rounded-xl"><div class="aspect-video w-full rounded-3xl bg-hover max-md:rounded-xl"></div></div><div class="flex flex-col gap-4 p-4 pt-0 pr-6"><div class="h-2.5 w-28 rounded-sm bg-hover"></div><div class="flex flex-col gap-1.5"><div class="h-4.5 w-full rounded-sm bg-hover"></div><div class="h-4.5 w-3/5 rounded-sm bg-hover"></div></div><div class="flex items-center gap-2"><div class="size-5 rounded-full bg-hover"></div><div class="h-2.5 w-20 rounded-sm bg-hover"></div></div></div></div><div class="flex flex-col gap-6 rounded-xl max-md:gap-4"><div class="rounded-3xl shadow-md max-md:rounded-xl"><div class="aspect-video w-full rounded-3xl bg-hover max-md:rounded-xl"></div></div><div class="flex flex-col gap-4 p-4 pt-0 pr-6"><div class="h-2.5 w-28 rounded-sm bg-hover"></div><div class="flex flex-col gap-1.5"><div class="h-4.5 w-full rounded-sm bg-hover"></div><div class="h-4.5 w-3/5 rounded-sm bg-hover"></div></div><div class="flex items-center gap-2"><div class="size-5 rounded-full bg-hover"></div><div class="h-2.5 w-20 rounded-sm bg-hover"></div></div></div></div><div class="flex flex-col gap-6 rounded-xl max-md:gap-4"><div class="rounded-3xl shadow-md max-md:rounded-xl"><div class="aspect-video w-full rounded-3xl bg-hover max-md:rounded-xl"></div></div><div class="flex flex-col gap-4 p-4 pt-0 pr-6"><div class="h-2.5 w-28 rounded-sm bg-hover"></div><div class="flex flex-col gap-1.5"><div class="h-4.5 w-full rounded-sm bg-hover"></div><div class="h-4.5 w-3/5 rounded-sm bg-hover"></div></div><div class="flex items-center gap-2"><div class="size-5 rounded-full bg-hover"></div><div class="h-2.5 w-20 rounded-sm bg-hover"></div></div></div></div><div class="flex flex-col gap-6 rounded-xl max-md:gap-4"><div class="rounded-3xl shadow-md max-md:rounded-xl"><div class="aspect-video w-full rounded-3xl bg-hover max-md:rounded-xl"></div></div><div class="flex flex-col gap-4 p-4 pt-0 pr-6"><div class="h-2.5 w-28 rounded-sm bg-hover"></div><div class="flex flex-col gap-1.5"><div class="h-4.5 w-full rounded-sm bg-hover"></div><div class="h-4.5 w-3/5 rounded-sm bg-hover"></div></div><div class="flex items-center gap-2"><div class="size-5 rounded-full bg-hover"></div><div class="h-2.5 w-20 rounded-sm bg-hover"></div></div></div></div></div></div><div class="relative mx-auto w-full max-w-screen-xl px-4 md:px-6 py-16 max-md:px-6 max-md:pt-6 max-md:pb-8"><div class="mb-16 flex items-center gap-4 px-4 max-md:flex-col max-md:items-stretch"><div class="flex flex-1 gap-3"><div class="h-10 w-16 rounded-full bg-hover"></div><div class="h-10 w-32 rounded-full bg-hover"></div><div class="h-10 w-28 rounded-full bg-hover"></div><div class="h-10 w-24 rounded-full bg-hover"></div></div><div class="h-13 w-65.5 rounded-full bg-hover max-md:w-full"></div></div><div class="grid grid-cols-3 gap-x-6 gap-y-16 max-md:grid-cols-1 max-md:gap-y-10"><div class="flex flex-col gap-6 rounded-xl max-md:gap-4"><div class="rounded-3xl shadow-md max-md:rounded-xl"><div class="aspect-video w-full rounded-3xl bg-hover max-md:rounded-xl"></div></div><div class="flex flex-col gap-4 p-4 pt-0 pr-6"><div class="h-2.5 w-28 rounded-sm bg-hover"></div><div class="flex flex-col gap-1.5"><div class="h-4.5 w-full rounded-sm bg-hover"></div><div class="h-4.5 w-3/5 rounded-sm bg-hover"></div></div><div class="flex items-center gap-2"><div class="size-5 rounded-full bg-hover"></div><div class="h-2.5 w-20 rounded-sm bg-hover"></div></div></div></div><div class="flex flex-col gap-6 rounded-xl max-md:gap-4"><div class="rounded-3xl shadow-md max-md:rounded-xl"><div class="aspect-video w-full rounded-3xl bg-hover max-md:rounded-xl"></div></div><div class="flex flex-col gap-4 p-4 pt-0 pr-6"><div class="h-2.5 w-28 rounded-sm bg-hover"></div><div class="flex flex-col gap-1.5"><div class="h-4.5 w-full rounded-sm bg-hover"></div><div class="h-4.5 w-3/5 rounded-sm bg-hover"></div></div><div class="flex items-center gap-2"><div class="size-5 rounded-full bg-hover"></div><div class="h-2.5 w-20 rounded-sm bg-hover"></div></div></div></div><div class="flex flex-col gap-6 rounded-xl max-md:gap-4"><div class="rounded-3xl shadow-md max-md:rounded-xl"><div class="aspect-video w-full rounded-3xl bg-hover max-md:rounded-xl"></div></div><div class="flex flex-col gap-4 p-4 pt-0 pr-6"><div class="h-2.5 w-28 rounded-sm bg-hover"></div><div class="flex flex-col gap-1.5"><div class="h-4.5 w-full rounded-sm bg-hover"></div><div class="h-4.5 w-3/5 rounded-sm bg-hover"></div></div><div class="flex items-center gap-2"><div class="size-5 rounded-full bg-hover"></div><div class="h-2.5 w-20 rounded-sm bg-hover"></div></div></div></div><div class="flex flex-col gap-6 rounded-xl max-md:gap-4"><div class="rounded-3xl shadow-md max-md:rounded-xl"><div class="aspect-video w-full rounded-3xl bg-hover max-md:rounded-xl"></div></div><div class="flex flex-col gap-4 p-4 pt-0 pr-6"><div class="h-2.5 w-28 rounded-sm bg-hover"></div><div class="flex flex-col gap-1.5"><div class="h-4.5 w-full rounded-sm bg-hover"></div><div class="h-4.5 w-3/5 rounded-sm bg-hover"></div></div><div class="flex items-center gap-2"><div class="size-5 rounded-full bg-hover"></div><div class="h-2.5 w-20 rounded-sm bg-hover"></div></div></div></div><div class="flex flex-col gap-6 rounded-xl max-md:gap-4"><div class="rounded-3xl shadow-md max-md:rounded-xl"><div class="aspect-video w-full rounded-3xl bg-hover max-md:rounded-xl"></div></div><div class="flex flex-col gap-4 p-4 pt-0 pr-6"><div class="h-2.5 w-28 rounded-sm bg-hover"></div><div class="flex flex-col gap-1.5"><div class="h-4.5 w-full rounded-sm bg-hover"></div><div class="h-4.5 w-3/5 rounded-sm bg-hover"></div></div><div class="flex items-center gap-2"><div class="size-5 rounded-full bg-hover"></div><div class="h-2.5 w-20 rounded-sm bg-hover"></div></div></div></div><div class="flex flex-col gap-6 rounded-xl max-md:gap-4"><div class="rounded-3xl shadow-md max-md:rounded-xl"><div class="aspect-video w-full rounded-3xl bg-hover max-md:rounded-xl"></div></div><div class="flex flex-col gap-4 p-4 pt-0 pr-6"><div class="h-2.5 w-28 rounded-sm bg-hover"></div><div class="flex flex-col gap-1.5"><div class="h-4.5 w-full rounded-sm bg-hover"></div><div class="h-4.5 w-3/5 rounded-sm bg-hover"></div></div><div class="flex items-center gap-2"><div class="size-5 rounded-full bg-hover"></div><div class="h-2.5 w-20 rounded-sm bg-hover"></div></div></div></div></div></div></main><!--/$--></div>
318<script>$RC("B:1","S:1")</script>
318<div hidden id="S:2"><main><div class="relative mx-auto w-full max-w-screen-xl px-4 md:px-6 pt-20 pb-0 max-md:px-6 max-md:pt-10"><h1 class="mb-8 heading-3xl font-semibold max-md:mb-6 max-md:text-2xl max-md:leading-[1.2] max-md:tracking-[-0.5px]">Blog</h1><div data-track-context="blog_post_featured_preview" data-track-click="BLOG_FEATURED_LINK_CLICKED"><div class="max-md:hidden"><a href="/blog/agent-fixes-bugs-on-eas-simulator" dir="auto" role="link" class="css-146c3p1 group rounded-xl r-1loqt21"><div class="flex gap-6"><div class="w-2/3 shrink-0 rounded-3xl transition-shadow duration-300 ease-out group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl"><figure class="aspect-video w-full"><img alt="Self healing apps? text over a layered app icon on a dark background" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1920 1920w" src="https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="flex flex-1 flex-col justify-between px-4 py-6"><div class="flex flex-col gap-10 max-xl:gap-6"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-22T20:45:00.000Z" class="text-secondary">September 22, 2026</time><span class="text-quaternary select-none">â¢</span><span class="text-secondary">5 minutes read</span></p><div class="flex flex-col gap-4"><h2 class="heading-3xl max-xl:heading-2xl">What if your app could fix itself?</h2><p class="text-base font-medium text-secondary max-xl:text-sm">With EAS Workflows and EAS Simulator, a bug report becomes a pull request with a fix and recordings showing it works.</p></div></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-auto"><div class="flex items-center"><img alt="Rami Maalouf" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Rami</span></div></div></div></a></div><div class="grid grid-cols-2 gap-x-10 gap-y-16 pt-16 max-md:grid-cols-1 max-md:gap-y-10 max-md:pt-0" data-track-context="blog_post_featured_other_previews" data-track-click="BLOG_FEATURED_LINK_CLICKED"><div class="hidden max-md:block"><a href="/blog/agent-fixes-bugs-on-eas-simulator" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-8 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-out max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="Self healing apps? text over a layered app icon on a dark background" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1920 1920w" src="https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-20 pl-4 max-md:px-2"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-22T20:45:00.000Z" class="text-secondary">September 22, 2026</time><span class="text-quaternary select-none">â¢</span><span class="text-secondary">5 minutes read</span></p><h3 class="heading-2xl max-md:text-xl max-md:font-semibold">What if your app could fix itself?</h3><p class="text-base font-medium text-secondary">With EAS Workflows and EAS Simulator, a bug report becomes a pull request with a fix and recordings showing it works.</p></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Rami Maalouf" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Rami</span></div></div></a></div><a href="/blog/build-ios-apps-on-windows-with-cloud-simulators" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-8 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-out max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="Rami looking surprised beside an iPhone marked Live, a Windows logo, and the words Running on Windows" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=1800 1800w" src="https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-20 pl-4 max-md:px-2"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-14T13:15:30.123Z" class="text-secondary">September 14, 2026</time><span class="text-quaternary select-none">â¢</span><span class="text-secondary">9 minutes read</span></p><h3 class="heading-2xl max-md:text-xl max-md:font-semibold">You don't need a Mac to develop iOS apps</h3></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Rami Maalouf" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Rami</span></div></div></a><a href="/blog/why-expo-is-a-great-fit-for-new-and-existing-react-native-apps" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-8 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-out max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="Why Expo is a great fit for new and existing React Native apps" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" src="https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-20 pl-4 max-md:px-2"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-11T16:00:00.000Z" class="text-secondary">September 11, 2026</time><span class="text-quaternary select-none">â¢</span><span class="text-secondary">10 minutes read</span></p><h3 class="heading-2xl max-md:text-xl max-md:font-semibold">Why Expo is a great fit for new and existing apps</h3></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Keith Kurak" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/4acdf911df64151706d36c3c767f5a02f3182ead-870x870.png?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/4acdf911df64151706d36c3c767f5a02f3182ead-870x870.png?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/4acdf911df64151706d36c3c767f5a02f3182ead-870x870.png?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Keith</span></div></div></a><a href="/blog/24-hours-of-expo" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-8 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-out max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="24 hours of Expo apps" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" src="https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-20 pl-4 max-md:px-2"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-10T13:15:54.752Z" class="text-secondary">September 10, 2026</time><span class="text-quaternary select-none">â¢</span><span class="text-secondary">8 minutes read</span></p><h3 class="heading-2xl max-md:text-xl max-md:font-semibold">Can you go 24 hours using only Expo apps? </h3></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Jon Samp" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/ca406c8fc5fab2819dae7128fe4a84429438aed1-225x225.jpg?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/ca406c8fc5fab2819dae7128fe4a84429438aed1-225x225.jpg?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/ca406c8fc5fab2819dae7128fe4a84429438aed1-225x225.jpg?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Jon</span></div></div></a><a href="/blog/an-early-look-at-expo-modules-2-0" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-8 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-ou
318t max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="An early look at Expo Modules 2.0" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" src="https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-20 pl-4 max-md:px-2"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-08T16:15:09.416Z" class="text-secondary">September 8, 2026</time><span class="text-quaternary select-none">â¢</span><span class="text-secondary">13 minutes read</span></p><h3 class="heading-2xl max-md:text-xl max-md:font-semibold">An early look at Expo Modules 2.0</h3></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Tomasz Sapeta" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/8818badc6caf10834981bc6034884092d0790c4a-400x400.jpg?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/8818badc6caf10834981bc6034884092d0790c4a-400x400.jpg?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/8818badc6caf10834981bc6034884092d0790c4a-400x400.jpg?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Tomasz</span></div></div></a></div></div></div><div id="category-search-section" class="scroll-mt-14 py-16 max-md:px-6 max-md:pt-6 max-md:pb-8" data-track-location="blog_category_search"><div class="-mt-0.5 -mb-px h-0"></div><div id="category-search" class="sticky top-17 z-40 mb-16 w-full bg-default py-4 transition-shadow duration-100"><div id="blog_category-search-controls" data-track-context="blog_category_search_controls" class="mx-auto flex w-full max-w-screen-xl items-center gap-4 px-6 lg:px-10 max-md:flex-col max-md:items-stretch max-md:px-6"><div class="min-w-0 flex-1 scrollbar-none overflow-x-auto py-2 [&::-webkit-scrollbar]:hidden"><div class="flex w-max items-center gap-8 pr-2 max-md:gap-4"><button type="button" class="group flex shrink-0 cursor-pointer items-center gap-1.5 text-base font-medium transition-colors text-default">All<span class="rounded-full px-2.5 py-0.5 text-xs bg-hover text-default">227</span></button><button type="button" class="group flex shrink-0 cursor-pointer items-center gap-1.5 text-base font-medium transition-colors text-tertiary hocus:text-default">AI<span class="rounded-full px-2.5 py-0.5 text-xs bg-element text-secondary group-hocus:bg-hover group-hocus:text-default">8</span></button><button type="button" class="group flex shrink-0 cursor-pointer items-center gap-1.5 text-base font-medium transition-colors text-tertiary hocus:text-default">Development<span class="rounded-full px-2.5 py-0.5 text-xs bg-element text-secondary group-hocus:bg-hover group-hocus:text-default">152</span></button><button type="button" class="group flex shrink-0 cursor-pointer items-center gap-1.5 text-base font-medium transition-colors text-tertiary hocus:text-default">Product<span class="rounded-full px-2.5 py-0.5 text-xs bg-element text-secondary group-hocus:bg-hover group-hocus:text-default">89</span></button><button type="button" class="group flex shrink-0 cursor-pointer items-center gap-1.5 text-base font-medium transition-colors text-tertiary hocus:text-default">React Native<span class="rounded-full px-2.5 py-0.5 text-xs bg-element text-secondary group-hocus:bg-hover group-hocus:text-default">93</span></button><button type="button" class="group flex shrink-0 cursor-pointer items-center gap-1.5 text-base font-medium transition-colors text-tertiary hocus:text-default">Security notices<span class="rounded-full px-2.5 py-0.5 text-xs bg-element text-secondary group-hocus:bg-hover group-hocus:text-default">2</span></button><button type="button" class="group flex shrink-0 cursor-pointer items-center gap-1.5 text-base font-medium transition-colors text-tertiary hocus:text-default">Users<span class="rounded-full px-2.5 py-0.5 text-xs bg-element text-secondary group-hocus:bg-hover group-hocus:text-default">66</span></button></div></div><div class="relative shrink-0 max-md:w-full"><input class="h-13 w-65.5 rounded-full border border-default bg-transparent px-6 py-1.5 pl-9 text-base shadow-xs placeholder:text-quaternary focus:border-link focus:outline-none max-md:w-full max-xl:pt-0.75" placeholder="Search" aria-label="Search blog posts" id="search-input" value=""/><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="translate-z shrink-0 pointer-events-none absolute top-[calc(50%-8px)] left-3 icon-sm text-icon-secondary" role="img"><g id="search-md-outline-icon"><path id="Icon" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21L16.65 16.65M19 11C19 15.4183 15.4183 19 11 19C6.58172 19 3 15.4183 3 11C3 6.58172 6.58172 3 11 3C15.4183 3 19
3186.58172 19 11Z"></path></g></svg></div></div></div><div class="relative mx-auto w-full max-w-screen-xl px-4 md:px-6"><div data-track-context="blog_category_search_results" class="min-h-[50dvh]"><div class="grid grid-cols-3 gap-x-6 gap-y-16 max-md:grid-cols-1 max-md:gap-y-10" data-track-click="BLOG_POST_LINK_CLICKED" style="opacity:1"><div class="will-change-[transform,opacity]" style="opacity:1"><a href="/blog/agent-fixes-bugs-on-eas-simulator" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-6 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-out max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="Self healing apps? text over a layered app icon on a dark background" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1920 1920w" src="https://cdn.sanity.io/images/9r24npb8/production/4cace7774ddd4fa6a9cd30886a0c0b339c3d2840-1920x1080.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-6"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-22T20:45:00.000Z" class="text-secondary">September 22, 2026</time></p><h3 class="heading-xl">What if your app could fix itself?</h3></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Rami Maalouf" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Rami</span></div></div></a></div><div class="will-change-[transform,opacity]" style="opacity:1"><a href="/blog/build-ios-apps-on-windows-with-cloud-simulators" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-6 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-out max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="Rami looking surprised beside an iPhone marked Live, a Windows logo, and the words Running on Windows" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=1800 1800w" src="https://cdn.sanity.io/images/9r24npb8/production/3cac54f661c659105f8148eeb8cf3173d9ad3ac9-1800x1012.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-6"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-14T13:15:30.123Z" class="text-secondary">September 14, 2026</time></p><h3 class="heading-xl">You don't need a Mac to develop iOS apps</h3></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Rami Maalouf" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/56e0e8aa9e033d08ae9435e14163fbae4f7261ee-512x512.png?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Rami</span></div></div></a></div><div class="will-change-[transform,opacity]" style="opacity:1"><a href="/blog/why-expo-is-a-great-fit-for-new-and-existing-react-native-apps" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-6 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-out max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="Why Expo is a great fit for new and existing React Native apps" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" src="https://cdn.sanity.io/images/9r24npb8/production/7521570a62f88d0c2aa65906321789a81e4919a3-2400x1350.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-6"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-11T16:00:00.000Z" class="text-secondary">September 11, 2026</time></p><h3 class="heading-xl">Why Expo is a great fit for new and existing apps</h3></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Keith Kurak" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/4acdf911df64151706d36c3c767f5a02f3182ead-870x870.png?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/4acdf911df64151706d36c3c767f5a02f3182ead-870x870.png?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/4acdf911df64151706d36c3c767f5a02f3182ead-870x870.png?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Keith</span></div></div></a></div><div class="will-change-[transform,opacity]" style="opacity:1"><a href="/blog/24-hours-of-expo" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-6 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-out max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="24 hours of Expo apps" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" src="https://cdn.sanity.io/images/9r24npb8/production/ae95c59c1310cf39162eb53bde833074e818ace2-2400x1350.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-6"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-10T13:15:54.752Z" class="text-secondary">September 10, 2026</time></p><h3 class="heading-xl">Can you go 24 hours using only Expo apps? </h3></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Jon Samp" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/ca406c8fc5fab2819dae7128fe4a84429438aed1-225x225.jpg?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/ca406c8fc5fab2819dae7128fe4a84429438aed1-225x225.jpg?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/ca406c8fc5fab2819dae7128fe4a84429438aed1-225x225.jpg?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Jon</span></div></div></a></div><div class="will-change-[transform,opacity]" style="opacity:1"><a href="/blog/an-early-look-at-expo-modules-2-0" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-6 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-out max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="An early look at Expo Modules 2.0" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" src="https://cdn.sanity.io/images/9r24npb8/production/a8ef43c79f0c7cc757ef965b2afd75dbf09da0a9-2400x1350.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-6"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-08T16:15:09.416Z" class="text-secondary">September 8, 2026</time></p><h3 class="heading-xl">An early look at Expo Modules 2.0</h3></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Tomasz Sapeta" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/8818badc6caf10834981bc6034884092d0790c4a-400x400.jpg?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/8818badc6caf10834981bc6034884092d0790c4a-400x400.jpg?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/8818badc6caf10834981bc6034884092d0790c4a-400x400.jpg?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Tomasz</span></div></div></a></div><div class="will-change-[transform,opacity]" style="opacity:1"><a href="/blog/aeo-practices-to-make-your-documentation-ai-ready" dir="auto" role="link" class="css-146c3p1 group flex flex-col rounded-xl gap-6 max-md:gap-4 r-1loqt21"><div class="rounded-3xl transition-shadow duration-300 ease-out max-md:rounded-xl group-hocus:shadow-lg"><div class="overflow-hidden rounded-3xl max-md:rounded-xl"><figure class="aspect-video w-full"><img alt="12 AEO practices to make your documentation AI-ready" loading="eager" rel="preload" fetchPriority="high" class="aspect-video border-[0.01rem] border-palette-gray4 w-full rounded-3xl bg-element transition-transform duration-300 ease-out max-md:rounded-xl group-hover:scale-102" srcSet="https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=300 300w, https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=600 600w, https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=900 900w, https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=1200 1200w, https:
318//cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=1800 1800w, https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=2400 2400w" src="https://cdn.sanity.io/images/9r24npb8/production/c56ef8343de3c2ba3d1eb83da0b5d31a89c4aa67-2400x1350.png?auto=format&fit=max&q=75&w=1200" width="1200" height="675"/><figcaption></figcaption></figure></div></div><div class="p-4 pt-0 pr-6"><div class="flex flex-col gap-4"><p class="flex flex-wrap items-center gap-x-2 eyebrow"><time dateTime="2026-09-03T15:45:01.171Z" class="text-secondary">September 3, 2026</time></p><h3 class="heading-xl">12 AEO practices to make your documentation AI-ready</h3></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 mt-4"><div class="flex items-center"><img alt="Aman Mittal" loading="lazy" class="aspect-square rounded-full bg-element object-cover size-6 border-(--expo-theme-background-default) border-2" srcSet="https://cdn.sanity.io/images/9r24npb8/production/98614494e9f5b180a1d3bc70e69007dd1d5d955c-1018x1012.png?auto=format&fit=max&q=75&w=24 24w, https://cdn.sanity.io/images/9r24npb8/production/98614494e9f5b180a1d3bc70e69007dd1d5d955c-1018x1012.png?auto=format&fit=max&q=75&w=48 48w" src="https://cdn.sanity.io/images/9r24npb8/production/98614494e9f5b180a1d3bc70e69007dd1d5d955c-1018x1012.png?auto=format&fit=max&q=75&w=24" width="24" height="24"/></div><span class="text-sm font-medium text-secondary">Aman</span></div></div></a></div></div><div class="mt-16 flex justify-center"><button class="cursor-pointer inline-flex items-center gap-2 border border-solid font-medium whitespace-nowrap transition h-9 rounded-[calc(9*4px)] px-4 text-sm border-button-secondary bg-button-secondary text-button-secondary active:scale-98 hocus:bg-button-secondary-hover relative" type="button" data-track-click="BLOG_CATEGORY_SEARCH_LOAD_MORE_CLICKED" title="Load more"><span class="flex self-center leading-none text-inherit"><div class="transition-opacity">Load more</div></span></button></div></div></div></div></main></div>
318<script>$RC("B:2","S:2")</script>
318</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.