I'm building my own Claude-based chatbot, powered by MongoDB.
A personal Claude-style chat app for authorized users with a capped public guest tier. Built as a learning project and the subject of a published article series. Not commercial. Hosted at askclaudius.dev.
Next.js 16 App Router with Turbopack (TypeScript strict), Auth.js v5, MongoDB Atlas (app data, LangGraph checkpoints, Vector Search), LangGraph JS, AWS Bedrock (Claude via cross-region inference), Vercel AI SDK, Voyage AI embeddings, Tavily web search, Vercel Blob, deployed on Vercel alongside a Railway worker.
Requires Node 22 or newer.
npm install
cp .env.example .env.local # fill in the required values
npm run devOpen http://localhost:3000.
npm run dev— start the Next.js app in development modenpm run build— production buildnpm run check— typecheck + lint + tests + production build across all workspaces; the gate that must pass before any work is called donenpm run test— Vitest runnpm run typecheck— TypeScript check across workspacesnpm run lint— ESLint across workspaces
packages/
app/ Next.js App Router (the deployed web app)
shared/ Shared library (db client, schemas, env validation, tiers)
specs/ Phase specs — read-only scope contracts
The build is staged across five phase specs in specs/. Each phase's scope is locked by its spec; conventions and invariants live in CLAUDE.md. Current phase: Phase 0 — Foundations.