
Expo’s Series B lets us build
+ More developer success for our world-class customers
+ More products to unlock that success
+ More capacity to meet the demand for our products and services
We are also excited to continue collaborating with other great companies, and for the Expo SDK and services to work well with even more libraries, products, and integrations from others. We care and work to be a great partner to great partners.
I’m proud of what we’ve built, from what started in a room w/@ccheever and is now a global team over 60 people strong.
This is an energizing time to be at @Expo!
🙌 Expo is the best it's ever been, and it's about to get a lot better.
We raised a Series B so we can go faster on the things that matter to you: faster builds, smoother native integrations, and the services to make end-to-end app development a delightful experience.
There is a lot of work to do. This round led by @Georgian_io puts us in position to go do it!
Expo gives your agents infrastructure for recursively self-improving apps
iPhone Duo is the first form factor evolution I've found fun to support, and our product infrastructure is ready to help developers across the Expo framework for React Native and the agentic mobile infrastructure for CI/CD and Simulators.
It's been enjoyable to see apps work quite well out of the box in the Duo simulator in the three modes: folded, partially unfolded, fully unfolded. Watching my apps smoothly respond to the device sparks joy and is what sold me on ordering a Duo.
To set expectations, it will take your attention to detail to decide how each screen should appear on an unfolded Duo. Should the contents slightly widen and be centered across the panels? Or should the contents split into two columns? It's rewarding IME.
Expo CI/CD builds and Simulators are ready for Xcode 27.1 (Duo support) today. Tell your agent, "Screenshot each screen of my app in all three iPhone Duo modes."
xitter.cf/expo/status/2109985000…
A question for my friends working on Claude Code, Codex, Grok/Cursor: Have you explored using decision API (like Jev) to set the effort level for each thinking turn?
For instance, if the agent is stuck at medium, it could dial itself up to xhigh. And for straightforward prompts it can use low.
The idea is easy tasks complete faster and more cheaply, and hard tasks achieve better outcomes unattended.
Effortless is to effort as Serverless is to servers.
Let us know if anything's hard to do when adapting your app for iPhone Duo in SDK 58!
- Expo Router and UI get you 90% there
- You may need extra SafeAreaViews for custom content
- Do test the split left layout!
🌴 One more reminder that we're hosting a meetup in Miami tomorrow.
There will be a sneak peek demo of our Cloud Sims service. And delicious food/drink.
We're pushing this one hard because it's our first meetup in Miami and if it goes well then we can make it a regular thing.
luma.com/o6kn4hbd
playing around with Grok @bot has been a lot of fun recently 🤩 feels like it's been improving by leaps and bounds
I've let it make a bot template for @expo apps with all our skills and integrations (simulators, ad-hoc dev builds, launch, tunnels, etc ❤️)
x.ai/bot/JjH-pvNlzX_wMv-YgSr…
When raising for a startup, you'll hear, "How can we be helpful?" in just about every VC meeting.
As an engineer, one of the things that makes me excited about @Georgian_io, our Series B lead, is their talented in-house engineering team called the AI Lab. This team builds internal tools for the firm and assesses potential investments from a developer's perspective. But that's not all. Georgian's engineers are available to collaborate with their portfolio companies.
As one of those companies, at @Expo we've been working with Georgian's AI Lab on agentic evals for our skills and APIs we ship for the Expo framework for React Native, and are sharing this jointly authored technical blog post today.
We measured how often coding agents actually use the skills you install...and it's a lot less often than you would hope.
We wrote up a big nerd-snipy blog in collaboration with @Georgian_io about how we set up the Evals and what we learned. You can read it here: expo.dev/blog/your-skills-ne…
In this 🧵 we share 5 things you should change in your setup based on what we found.
Design tip: there’s more than one way to pick the midpoint between two colors.
Standard RGB is mathematical. The R, G, and B components are averaged. But this yields a dull gray between vibrant blue and yellow.
Color spaces like Oklab and Oklch are instead designed around how our eyes perceive colors. Their gradients are more pleasing.
CSS, SVG, and most graphics programs support many color profiles. You don’t need to be an imaging expert to give your users nicer UIs!
I'd love test frameworks to use Jev/GPT Decision API to choose which tests to run ❤️
One of the best experiences with Jest is running "--watch" mode to get immediate feedback as it runs just the tests affected by the code you've changed, instead of your whole test suite. This is just as relevant when AI writes the code.
Last night I was optimizing my mobile smoke tests on my M5 Pro Mac. My agent runs these tests before sending me a preview build for my iPhone, so they're in the critical path of my feedback loop. These are a few ways I cut the time by over 3x, from 8m to 2m30:
- Doubled the number of simulators for parallel tests
- Polling instead of XCUITest's slow waitFor[Non]Existence
- Polling instead of sleeping
- Moved hidden virtual view placeholders outside the accessibility tree
- Merged tests with similar assertions (reduce setup)
However, setup (26%) and teardown (4%) are still 30% of the test time! Maximally parallelizing the test suite with agent-optimized cloud simulators is an option and makes a lot of sense for large test suites and CI/CD. Cloud simulators can also frontload some of the setup time so they're immediately ready for you. Do the workload faster.
A complementary approach is to make the workload smaller. I had my agent change my small testing harness so it could run specific tests and the agent would choose which tests to run. Now, some end-to-end test runs complete in under 10 seconds!
What if agentic test selection were built in to the testing harnesses instead? Decision models are now very cheap and very fast. They will quickly pay for themselves in both time and compute.
The question is how accurate they are. We especially don't want false negatives (skipping tests that are relevant) and also want to avoid false positives (running unnecessary tests). I suspect frameworks that already scan the dependency graph have an advantage since that can be an input to the model.
Let's make feedback fast!
"e2e" is a devtool that correctly uses the word "agentic".
It is actually imbued with intelligence rather than just being programmatically invokable by an agent, letting you write tests like:
agent.act('click on the settings tab')
As the developer, you can instruct your test framework in English as a quick way to get tests set up.
James Ide retweeted
We did not forget about Android! 💚
Every 😶dot/bot😶 can be your mobile development companion.
Expo Simulators are agent-optimized and will work with your autonomous agents.
Building a mobile app with your @OpenAI dot? Give it access to simulator as verification loop so it can achieve better results and provide you with evidence that their changes work 👀
My C-3PO dot is now able to build better mobile apps 🤖 Dots are cool! Thanks @thsottiaux!
Get your apps submitted to Shipaton if you haven't already. Clock is tickin! ⏰
60 hours to go and there's currently 1376 apps submitted to stores at #Shipaton showcase
apps.shipaton.com/2026?x=30
Sometimes URLs get out of date or AI models make up links. You can maintain a URL map for when you rename links but this doesn't solve hallucination.
The Expo docs use Jev to find the best match when visiting a link that doesn't exist. Sometimes that's still the 404 page but sometimes there's an actual docs page that has what you're looking for.
1. Write plain old Swift
2. Use two new attributes: ExpoModule on the class, JS on its functions and accessors
Swift async functions : JS async functions (2.2x faster calls)
Swift sync functions : JS sync functions (14.5x faster calls)
Android and Kotlin speedups coming next.
A native module is now one Swift class with @𝙹𝚂 on the parts JavaScript should see 🎉
Expo Modules 2.0
→ 𝙵𝚞𝚗𝚌𝚝𝚒𝚘𝚗 and 𝙰𝚜𝚢𝚗𝚌𝙵𝚞𝚗𝚌𝚝𝚒𝚘𝚗 collapse into one @𝙹𝚂 method
→ 100,000 adds: 97 ms → 19 ms on the same SDK
→ iOS in SDK 57 today
Benchmarks and code from @tsapeta: expo.dev/blog/an-early-look-…



















