This repo is wired as a pnpm + Turborepo workspace.
apps/api: Hono + Better Auth primary API, runs on port4000.apps/web: React + Vite frontend for the application, runs on port3000.apps/docs: Next.js documentation site, runs on port3001.apps/worker: FastAPI worker API, runs on port8000.apps/call: Python call API, runs on port8001.apps/heartbeat: Python heartbeat API, runs on port8002.
packages/ui: shared React UI package.packages/eslint-config: shared ESLint config.packages/typescript-config: shared TypeScript config.packages/db-mongo: Python MongoDB integration package placeholder.packages/db-sql: Drizzle ORM database package backed by Neon.
Set DATABASE_URL to the Neon connection string in the environment of the app
that uses the database. API code can then import the shared client with:
import { getDb } from "@repo/db-sql";
const db = getDb();Add table definitions under packages/db-sql/src/schema, then use
pnpm --filter @repo/db-sql db:generate and
pnpm --filter @repo/db-sql db:migrate to manage migrations.
packages/redis: Python Redis integration package placeholder.
From the repo root:
pnpm devThat runs every workspace dev script through Turbo.
The Python apps declare FastAPI/Uvicorn in their pyproject.toml files. If those
dependencies are not installed yet, their dev scripts still boot a minimal
fallback health server so the monorepo can start with one command while the API
implementations are being filled in.
Health endpoints:
curl http://localhost:4000/healthz
curl http://localhost:8000/health
curl http://localhost:8001/health
curl http://localhost:8002/healthFrontend API URLs are listed in .env.example.
pnpm build
pnpm lint
pnpm check-types
pnpm format