Monorepo:
- apps/snow-leopard: Next.js app
- packages/db: Drizzle schema & migrations
- Next.js (App Router), TypeScript, React
- TailwindCSS, Shadcn UI
- PostgreSQL, Drizzle ORM
- Better Auth
- Vercel AI SDK
- Tavily (for web search)
From the project root:
-
Clone & install:
git clone https://github.com/will-lp1/snowleopard.git cd snowleopard pnpm install
-
Copy env files:
cp packages/db/.env.example packages/db/.env cp apps/snow-leopard/.env.example apps/snow-leopard/.env
- Set DATABASE_URL in both.
- In
apps/snow-leopard/.env
, add:BETTER_AUTH_SECRET="" # e.g., openssl rand -hex 32 BETTER_AUTH_URL="http://localhost:3000" DISCORD_WEBHOOK_URL="" # AI Keys: GROQ_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY
-
Start the database:
docker compose up -d
-
Apply schema:
pnpm db:push
-
Run the app:
pnpm dev
Open http://localhost:3000.
- Start:
docker compose up -d
- Stop:
docker compose down
- Sync schema:
pnpm db:push
- Generate migration:
pnpm db:generate
- Apply migrations:
pnpm db:migrate
- Studio:
pnpm db:studio
- Fork the repo.
- Create a branch (
feature/...
orfix/...
). - Commit, push, and open a PR.
Apache License 2.0. See LICENSE for details.