Skip to main content

Expo as a React Framework

About 3 years ago, I tried expo for the second time. Between the two times, it had matured significantly. And the conversation around react had shifted from libraries to frameworks. And I'm probably understating my biases when I say that I don't like next. So, I decided that the value proposition of expo was high enough to adopt it as my react framework.

When I tell people this, I think the most significant pushback I get is that expo is for mobile. This is true to a point--it was recently noted on hackernews that expo has better integration with React Native than next has with react. However, I used expo for a long time for building just web apps (with React Native Web before it was a first class dependency of expo), even going so far as to just write standard react (with divs and all) or even use web based component libraries. I think this framing of expo makes more sense to me--it's a framework for building react. It happens that it has an added value proposition of making mobile build targets a first class citizen, but it's primary advantage is the set of opinions about how to write and build react applications--just like next.

The pushback I'd expect to receive is that in one very real way, expo is still living in the SPA era. While Next, Remix / React Router, and others have moved on to sophisticated models of rendering and hydration, expo still seemingly builds apps. It is probably a better replacement for the vite based react experience than the next or react router one.

I find this to be a significant trade-off. I also find talking about the merits and use cases of expo around render and hydration needs to be a more meaningful conversation than build targets, which is to say using expo should be a question of the structure and outcome of a build and run process, rather than the platform on which it runs.