Git-style version control and AI code review for MIT Scratch & more.
Mixgit is a full-stack web app that brings collaboration, version history, and beginner-friendly code review to Scratch block coding. Students share their work as Remixes (an approachable take on branches and pull requests), and Claude AI reads the underlying Scratch logic to give plain-language feedback.
Live demo: https://mixgit.tech/
Built with Next.js, React, TypeScript, MongoDB, Better Auth, and the Anthropic Claude API.
- Projects & Remixes: every project starts from a
mainremix. Students upload new versions as Remixes, a student-friendly abstraction of branches and pull requests. - Scratch block parser: reconstructs full program structure from a Scratch
.sb3'sproject.json. - Scratch block rendering: parsed scripts are displayed as readable, indented block stacks in the UI.
- AI code review: Claude reads the parsed program and returns friendly, structured feedback (what works well, suggestions, logic issues), tuned for 5th–8th-grade readers.
- Teams & sharing: invite collaborators to a project and view shared-projects.
- Auth & accounts: email/password auth, sessions with 30-day "remember me", and customizable profile.
- Search: find users and projects, and view remix/project counts.
- Privacy-conscious uploads: device-identifiable metadata is stripped from uploaded projects before storage.
| Layer | Technology |
|---|---|
| Framework | Next.js 16, React 19 |
| Language | TypeScript |
| UI | Tailwind CSS v4, HeroUI |
| Database | MongoDB (Atlas) via Mongoose |
| Auth | Better Auth (email/password, sessions) |
| Validation | Zod (mirrors the Mongoose models) |
| AI | Anthropic Claude API (@anthropic-ai/sdk) |
| Testing | Vitest + jsdom |
| Tooling | ESLint, Prettier, Husky + lint-staged |
| Deployment | Vercel |
- Node.js 18+ and npm
- A MongoDB connection string (e.g. a free MongoDB Atlas cluster)
- An Anthropic API key (console.anthropic.com)
git clone https://github.com/HunterCogan/scratchpad.git
cd scratchpad
npm installCopy the example env file and fill in your values:
cp .env.example .envGenerate a BETTER_AUTH_SECRET:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"npm run devOpen http://localhost:3000. Create an account, make a project, and upload a Scratch project's project.json as a Remix to see AI feedback.