Welcome to the HeySport monorepo! This guide will help you get up and running quickly.
Make sure you have these installed:
# Check Node.js (need >= 18.0.0)
node --version
# Check pnpm (need >= 9.0.0)
pnpm --version
# Check Bun (need >= 1.0.0)
bun --versionMissing something? See the Installation section below.
pnpm installThis installs all dependencies for:
- API server (Hono + Bun)
- Mobile app (Expo + React Native)
- Shared packages (TypeScript configs + types)
pnpm devThis starts both the API and mobile app simultaneously!
- API: http://localhost:3001
- Mobile: Expo Metro bundler on port 8082 - Scan QR code with Expo Go app
API Only:
cd apps/api
bun devMobile Only:
cd apps/mobile
pnpm dev# Health check
curl http://localhost:3001
# Get a user
curl http://localhost:3001/api/users/123-
Install Expo Go on your phone:
-
Run
pnpm devinapps/mobile -
Scan the QR code with:
- iOS: Camera app → opens in Expo Go
- Android: Expo Go app → Scan QR
heysport/
├── apps/
│ ├── api/ # Hono API (Bun runtime)
│ │ └── src/index.ts # API routes & logic
│ └── mobile/ # Expo/React Native app
│ └── App.tsx # Mobile app entry
├── packages/
│ ├── types/ # Shared TypeScript types
│ └── typescript-config/ # Shared TS configs
├── turbo.json # Turborepo pipeline
├── pnpm-workspace.yaml # pnpm workspace config
└── package.json # Root package.json
- Turborepo - Fast build system for monorepos
- pnpm Workspaces - Efficient dependency management
- Expo/React Native - Mobile app development
- Hono + Bun - Ultra-fast API server
- TypeScript - Full type safety across the monorepo
- Shared Types - Type definitions used by both apps
- Metro Config - Configured for monorepo structure
@repo/types - Shared TypeScript types
import type { User, ApiResponse } from '@repo/types';@repo/typescript-config - Shared TypeScript configurations
base.json- Base configreact-native.json- For mobile appnode.json- For API server
pnpm type-checkpnpm buildpnpm lintTo the API:
cd apps/api
bun add <package-name>To the Mobile App:
cd apps/mobile
pnpm add <package-name>To Shared Types:
cd packages/types
pnpm add -D <package-name>- Turborepo: https://turbo.build/repo/docs
- Expo: https://docs.expo.dev/
- Hono: https://hono.dev/
- Bun: https://bun.sh/docs
- pnpm: https://pnpm.io/
- Use TypeScript: Define shared types in
packages/typesfor consistency - Hot Reload: Both apps support hot reload in development
- Turbo Cache: Second runs are faster thanks to Turborepo caching
- Workspace Protocol: Dependencies use
workspace:*for monorepo packages
npm install -g pnpmcurl -fsSL https://bun.sh/install | bashInstalled automatically with pnpm install.
- Check SETUP.md for detailed setup instructions
- See VERIFICATION.md for verification steps
- Read README.md for more details
Start building amazing things with HeySport!
pnpm devHappy coding! 🚀