This is fullstack React Native opinionated boilerplate with Expo-router, Tamagui, Recoil and Next.js supporting
Android, iOS and Web based on turbo repo
- Android (Expo 49)
 - iOS (Expo 49)
 - Web (Next.js 13.4.10)
 
npx degit mononoke-choi/bandi my-project
cd my-project && yarn install
 
cd apps/native && yarn ios:build:local
 
yarn dev
It uses expo-dev-client. create your own Development Client first
- Turbo Repo
 - TypeScript
 - React Native
 - React Native For Web
 - React
 - Recoil
 - Expo
 - Expo Router
 - MMKVStorage
 - FlashList (Virtualized list for Native)
 - Tanstack Virtual (Virtualized list for Web)
 - React-native-swiper (carousel for Native)
 - Embla-carousel-react (carousel for Web)
 - Detox
 - Tamagui
 - Next.js
 - Swagger
 - Solito
 - Orval
 - Svgr
 
- Mono repository support
 - ESLint and Prettier configurations
 - Use Route handler of Next.js as an API layer of React Native
 - Send Slack message using Route handler when your Expo Application Services (EAS) build or submission has completed
 - Recoil sync with MMKV Storage for State persistence
 - Generate REST API fetchers based on openAPI specification generated by Swagger written in Route handler
 - File system-based routing of Native app like Next.js
 - Real world examples
 
├───apps
│   └───native
│   └───web
├───packages
│   └───api
│   └───eslint-config-custom
│   └───tsconfig
│   └───ui
In general, root package.json is used to manage mono repository
postinstall: Install missing TypeScript typings for dependencies in your package.jsondev: Starts the development server metro (native) and webpack (web)build: build Next.js app for productionclean: Clear build outputspostclean: Install after running clean scriptlint: Lints the code using ESLintprettier: Checks the code for proper formattingcheck-deps: Check your unmatched dependency versions