Monorepo managed by Nx containing the backend API, web app, React Native mobile app, and shared TypeScript types.
- Node 22.x and pnpm 9+ (see engines in package.json)
- macOS/iOS: Xcode + CocoaPods (
brew install cocoapods) for native iOS - Android: Android Studio with an emulator or device connected via
adb - Optional:
pnpm dlx nx --versionto confirm Nx CLI availability
- Clone and enter the repo
git clone https://github.com/JoblyAIHCMUS/JoblyAI.git
cd JoblyAI- Install pnpm if needed
corepack enable
corepack prepare pnpm@latest --activate- Install workspace dependencies
pnpm install- Start all dev servers (backend, web, mobile web):
This runs
pnpm start
nx run-many --target=serve --all. - Lint everything:
pnpm nx run-many --target=lint --all
- Typecheck everything:
pnpm nx run-many --target=typecheck --all
- Visualize dependency graph:
pnpm nx graph
- Build everything:
pnpm nx run-many --target=build --all
- Check what targets exist:
pnpm nx show project @jobly/backend
- Explore graph visually in the browser:
pnpm nx graph
- Path: apps/backend
- Dev (watch):
pnpm nx serve @jobly/backend --configuration=development
- Build (production bundle):
pnpm nx build @jobly/backend
- Path: apps/web
- Dev server:
pnpm nx dev @jobly/web
- Production build:
pnpm nx build @jobly/web
- Path: apps/mobile
- Web preview (Vite dev):
pnpm nx dev @jobly/mobile
- Metro bundler (native):
pnpm nx start @jobly/mobile
- iOS setup (once on macOS):
pnpm nx run @jobly/mobile:pod-install
- Run iOS simulator:
pnpm nx run @jobly/mobile:run-ios
- Run Android emulator/device:
pnpm nx run @jobly/mobile:run-android
- Path: libs/shared-types
- Build:
pnpm nx build @jobly/shared-types