- Next.js
- Expo (TODO)
- ShadCN UI
- Hono.js (deployed with Cloudflare Workers)
- Neon (database)
- Biome (linter & formatter)
- Bun (package manager & runtime)
- Turbo Repo (monorepo management)
Before starting, ensure you have the following installed:
- Bun (preferred package manager)
- Git
- Docker (if applicable)
- System dependencies (varies per package; see specific package README files)
# Install Bun
curl -fsSL https://bun.sh/install | bash
# Verify installation
bun --version
- Clone the repository:
git clone git@github.com:your-org/monorepo.git cd monorepo
- Install dependencies:
bun install
- Verify the setup:
bun run check-deps
To start development, run the appropriate package:
bun run <script>
Example:
bun run web
"scripts": {
"ui": "bun run --cwd packages/ui ui",
"web": "bun run --cwd ./apps/next dev",
"api": "bun run --cwd ./packages/api dev",
"format": "bun x @biomejs/biome format --write ./packages ./apps",
"lint": "bun x @biomejs/biome lint ./packages ./apps",
"fix": "bun x @biomejs/biome check --write --unsafe ./packages ./apps",
"turbo:dev": "turbo dev",
"turbo:lint": "turbo lint",
"turbo:format": "turbo format",
"turbo:build": "turbo build",
"check-deps": "check-dependency-version-consistency ."
}
bun run turbo:build
We use Biome to enforce consistent code style.
bun run lint
bun run format
Each package requires specific environment variables. Ensure these are set up correctly.
DATABASE_URL=
ENV=
JWT_SECRET=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRET=
APPLE_CLIENT_ID=
APPLE_WEB_CLIENT_ID=
APPLE_PRIVATE_KEY=
APPLE_TEAM_ID=
APPLE_KEY_ID=
API_DOMAIN=
WEB_DOMAIN=
BETTER_AUTH_SECRET=
API_VERSION=v1
RATE_LIMITER=5
NEXT_PUBLIC_APP_URL=
NEXT_PUBLIC_API_URL=
API_URL=
Issue: Dependency installation fails.
- Solution: Try running:
rm -rf node_modules && bun install
Last updated: 2025-02-09