Personalized, curriculum-grounded ‘AI companions’ for classrooms.
- Next.js 16 + React 19 with Tailwind CSS and Radix UI.
- Convex for data, server functions, and Convex Auth.
- Gemini-powered assignment parsing and tutoring flows.
- Vercel deploys with Convex deployment baked into the build script.
- Requirements: Node 20+, pnpm, a Convex account (
pnpm dlx convex loginonce), and a Gemini API key. - Install deps:
pnpm install - Link Convex:
pnpm convex dev(pick/create a project). - Some other stuff I lowkey dont remmeber
- Run the stack:
The first run of the Convex server will prompt you to pick/create a Convex project and will write local URLs into
pnpm dev # Next.js + Convex dev servers together pnpm dev:frontend # only Next.js pnpm dev:backend # only Convex (writes NEXT_PUBLIC_CONVEX_URL to .env.local)
.env.local.
pnpm lint— Run Prettier in write mode across the repo.pnpm format/pnpm format:check— Prettier formatting (also enforced in CI).pnpm build— Production Next.js build.pnpm start— Run the built app.
- GitHub Action:
.github/workflows/vercel.ymlrunsvercel build+vercel deploy --prebuilton pushes and PRs. Configure repo secrets:VERCEL_TOKEN,VERCEL_ORG_ID,VERCEL_PROJECT_ID,CONVEX_DEPLOY_KEY,CONVEX_SITE_URL,GEMINI_API_KEY, andNEXT_PUBLIC_CONVEX_URLfor preview builds (prod gets this injected byconvex deploy). - Vercel build uses
vercel.json+scripts/build.sh; in production (VERCEL_ENV=production) it runsconvex deploy --cmd 'npm run build', which deploys Convex and injectsNEXT_PUBLIC_CONVEX_URLfor the Next.js build. Previews skip the Convex deploy and only build, so ensureNEXT_PUBLIC_CONVEX_URLis set in preview envs. - Manual deploy from CLI (if needed):
pnpm dlx vercel pull --yes --environment=production pnpm dlx vercel build pnpm dlx vercel deploy --prebuilt --prod
app/— Next.js routes and UI.convex/— Convex schema, functions, and auth config.components/,hooks/,lib/— shared UI and helpers.scripts/build.sh— Vercel-aware build helper.
