This monorepo is a starter for an Expo + Next.js + Tamagui + Solito app, but focused on enterprise usage (older, more stable techs)
Many thanks to @FernandoTheRojo for the Solito starter monorepo which this was forked from. Check out his talk about using expo + next together at Next.js Conf 2021.
The main apps are:
-
expo
(native) -
next
(web) -
packages
shared packages across appsui
includes your custom UI kit that will be optimized by Tamaguiapp
you'll be importing most files fromapp/
features
(don't use ascreens
folder. organize by feature.)provider
(all the providers that wrap the app, and some no-ops for Web.)
You can add other folders inside of packages/
if you know what you're doing and have a good reason to.
-
Install dependencies:
pnpm i
/pnpm install
-
Next.js local dev:
pnpm web
To see debug output to verify the compiler, add // debug
as a comment to the top of any file.
- Expo local dev:
pnpm native
- Expo run:android:
pnpm build:android
- Expo run:ios:
pnpm build:ios
Note we're following the design systems guide and creating our own package for components.
See packages/ui
named @my/ui
for how this works.
If you're installing a JavaScript-only dependency that will be used across platforms, install it in packages/app
:
cd packages/app
pnpm i date-fns
cd ../..
pnpm
If you're installing a library with any native code, you must install it in expo
:
cd apps/expo
pnpm i react-native-reanimated
cd ..
pnpm