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!
So far:
- Surviving
- iPhone Duo is a device for sitting down, not traveling
- Folio cover makes it hard to check maps on the go
- Rex is OK but degrades if internet isn’t good enough
- Mobile AI software should use chat UIs, not TUIs
- Claude expiring active logins breaks my flow
- I can see why Apple built the ability to share eSIMs for people who want both iPhone 18 and Duo
🛫 I'm flying abroad without a laptop for the first time ever since I've owned one.
This is a sign of the times in technology and my company. From the interfaces to the infrastructure...
📱📱 iPhone Duo: a mini tablet in your pocket
🦖 Superlogical Rex: terminals on each computer
🐙 Ocho: AI subscription- and compute-aware agent fleet conductor
🌐 WireGuard & Tailscale: network security
🤖 Claude Code & Codex: the agents
🖥️ The Expo Lab: the secure home of my microcluster
This setup scales pretty well, I do most of my development from mobile already with about 10-15Btok/mo. @ccheever works more from his laptop and might be closer to 300Btok. He sleeps about as much as Claude does.
@diegoarias941@ccheever@expo This is impressive for a couple days’ work. Using Exact to help developers make apps is something I am thinking about too (on the mobile side more).
@peterpme@itometeam It’s not a bad thing IMO. The most successful apps in the stores are like 500MB. Hermes bytecode is more space-efficient than machine code, which is one of the reasons when apps made with Expo for RN topped the app store charts they would be by far one of the smallest.
@jmwind Serial network requests is something I would like to revisit after getting Duo support to no known issues. This is my current thinking, plus all capabilities of each host platform must be available to apps, like doing fetches while an app’s process is even terminated.
Hundreds of millions if not over a billion people depend on apps made with the Expo framework for React Native. It’s worthwhile to make React Native evolutionarily better with some great performance improvements coming in the next version. I also have a swath of commits that create a migration path to better gestures, animations, and native views.
(IMO “React Native vs native” is misled wording - this isn’t directed at you personally, I mean it more generally - and it is more whether the app uses React or doesn’t use React to create native UIs.)
Exact revolutionarily takes the ideas and dreams we’ve had over many years and introduces many changes together, from the programming language to an uncompromising level of quality (esp. on iOS) that is much easier for us to ship in Exact.
As an agentic-era codebase, development of Exact is very AI-forward and the rate of improvement tends to be bottlenecked on our attention, model speeds, and local compute. And since the codebase is owned by Expo we can land all improvements we think will create developer success. Exact should feel like a cohesive solution from one team.
Lastly, Expo’s infrastructure like agentic CI/CD and simulators work with every mobile app today, regardless of framework. We will need to build in support for Exact’s over-the-air updates to Expo Updates in time.
Generally, the cost of rewriting an app is now low enough to fit in a company’s quarterly roadmap and it will only get cheaper, aided with infrastructure like Expo Simulators and languages like Contract.
At Expo we create developer success and that means our infrastructure must accommodate any way a developer chooses to write their app.
⭐ Astryx just hit 20,000 stars on GitHub — and we're #2 trending across all repos today. https://t.co/M7rPb6Go96
Thank you to everyone building with us. This is just the beginning.
https://t.co/1yhtKVagq6
Native navigators are built-in. Normal tabs, stacks, split views and sheets all work and are URL-friendly since they work on web, too. There are some known edge cases with overflowing numbers of tabs, getting non-root safe area insets more than one level up, and certain header configurations with arrangement views, all will be fixed soon. iPhone Duo is well supported for most layouts.
UIKit measurably outperforms SwiftUI. The main reason to support SwiftUI is for places that require it like Apple Watch and some iOS widgets.
There are some subjective nice things about SwiftUI like the spacing and layout of buttons but they can be replicated and aren’t objectively better. However, some of SwiftUI’s design choices sacrifice performance, like how it reflows text as you animate the size of a view. Certainly possible in UIKit but we decided for Exact to cross fade the text between the start and end states by default which requires only one text relayout and works well with Core Animation.
Exact’s three top priorities are:
Agent optimization: UIKit and SwiftUI are about equal and pre-agent era. Contract matters more here.
Speed: UIKit wins.
Uncompromising UI: UIKit and SwiftUI are about equally supported by Apple. For instance the new view controllers for iPhone Duo have both UIKit and SwiftUI versions.
UIKit meets all three criteria.
Contract is a new agent-first programming language for writing high-performance native UIs.
It’s a key part of what makes Exact the agent-native way to write pre-agentic-era native frameworks like UIKit on iOS, AppKit on macOS, SwiftUI on Apple Watch, Android Views & Canvas on Android, the DOM on web, and so on.
Contract is fast to write, fast to deploy, fast to run. The language is designed for agents to write. Deployment is extremely fast with hot reloading and over-the-air updates to get feedback in 10s to 100s of milliseconds. Contract bytecode runs on Rust and uses fine-grained updates to minimize how much of the UI is updated.
As a human metric, an iOS app written with Exact often renders before its window fully expands to fill the screen when the user launches it by tapping its home screen icon, a metric I call “Rendered Before Zoomed”.
Contract is an evolving language. This takes advantage of agents’ tremendous ability to “learn” new programming languages, and the fact that Contract is already fast for agents to write despite its not being in the model weights yet. Contract will become an even more token-efficient way to use native frameworks as models train on it.
@notzenco@schlimmson Exact defaults to each platform’s styling & behavior and you can choose to restyle per-platform where you want. For instance you will probably want to style web more, and iOS less (use UIKit’s behavior).
@hamdymohamedak@nater02@expo Try making an app without looking at the code. Choose something low-stakes and go in with the mindset that you are learning what works and what doesn’t. There will be bugs and things to fix - hasn’t there always? - but guide the agent to debug and I suspect you will get far.
@prime_31@tchayen Yes, tell your agent to use Rust. I would advise this when needed and not for religious reasons because Rust compilation times are slower and over-the-air updates switch to WASM.
@aegeantic@tchayen Exact’s priority is an agent-native way to use UIKit so for the most part you are…using UIKit.
There are places where Exact does things differently for speed (text Core Text + Core Animation directly) and UX. For instance peek gestures support complex backgrounds like glass.
Exact is a breakthrough in generative UI from @ccheever and @expo. Just incredible 🚀
It brings the speed, guardrails & cross-platform support that have been missing ingredients in building production-ready apps this way
And will no doubt tie into all the other benefits of building within the Expo ecosystem like OTA updates & platform simulators
Congrats! This is huge!
@andrei_karabach@schlimmson Use a web view if you want the same UI pixel for pixel. The web is intended to implement the same spec on all platforms.
Exact is an agent-first way to use UIKit and Android Views/Canvas.