Blank Solito Example Monorepo
npx [email protected] my-solito-app
Instantly clone & deploy
This monorepo is a blank(ish) starter for an Expo + Next.js app.
While it's pretty barebones, it does a lot of the annoying config for you. The folder structure is opinionated, based on my long experience building for this stack.
solitofor cross-platform navigation
dripsyfor theming/design (you can bring your own, too)
- Expo SDK 44
- Next.js 12
- React Navigation 6
appsentry points for each app
packagesshared packages across apps
appyou'll be importing most files from
features(don't use a
screensfolder. organize by feature.)
provider(all the providers that wrap the app, and some no-ops for Web.)
navigationNext.js has a
pages/folder. React Native doesn't. This folder contains navigation-related code for RN. You may use it for any navigation code, such as custom links.
You can add other folders inside of
packages/ if you know what you're doing and have a good reason to.
Start the app
Next.js local dev:
Expo local dev:
Add new dependencies
Pure JS dependencies
cd packages/app yarn add date-fns cd ../.. yarn
If you're installing a library with any native code, you must install it in
cd apps/expo yarn add react-native-reanimated cd ../.. yarn
You can also install the native library inside of
packages/app if you want to get autoimport for that package inside of the
app folder. However, you need to be careful and install the exact same version in both packages. If the versions mismatch at all, you'll potentially get terrible bugs. This is a classic monorepo issue. I use
lerna-update-wizard to help with this (you don't need to use Lerna to use that lib).
About the creator
Follow Fernando Rojo on Twitter: @FernandoTheRojo
Why use Expo + Next.js?
See my talk about this topic at Next.js Conf 2021: