Prerequisite
Tools and background knowledge required for an Expo project.
Knowledge requirements
BowlerKit's Expo template is a TypeScript/React Native application. You should be comfortable with:
- TypeScript, React Native, and Expo Router for screens, hooks, and native modules.
- Zustand and TanStack React Query for client state and server state.
- PHP and Laravel if you select the Account profile and customize the admin panel.
- Go if you select the Account profile and customize the protected API backend.
The Guest profile is local-first and does not require the backend stack.
Required tools
Run the framework-specific check after installing the CLI:
bowler doctor expoThe check currently expects:
- Git.
- Node.js 18 or newer and
npx. - pnpm 11 (the template pins
[email protected]). - Expo CLI through
npx expo; a globalexpo-cliinstall is not required. - EAS CLI 16.28 or newer for cloud builds.
- Watchman is recommended for Metro file watching.
For Android development, install Android Studio, a JDK, the Android SDK, and adb. For iOS development, use macOS with Xcode and CocoaPods. The doctor command reports the native toolchain checks for your platform.
Account backend requirements
Only the Account profile needs these services:
- PHP and Composer for
admin-panel(Laravel owns authentication, uploads, migrations, webhooks, and destructive account operations). - PostgreSQL and Redis, configured in
admin-panel/.env. - Go 1.26.5 or newer for
api-backend.
The Go service validates Laravel Sanctum tokens and reads the shared Laravel database; it is not a second authentication server. Start with the Laravel service before enabling the Go service.
Optional landing page tools
The generated project also contains a Vituum/Vite landing page. Bun is the preferred package manager there; npm is a supported fallback. The landing page is independent of the Expo mobile app.
