This repo scaffolds a web app that teaches Git through interactive lessons. Users type commands into a browser terminal, which run inside an isolated Git sandbox per session. The server evaluates progress by inspecting repo state.
apps/api: Fastify API + WebSocket serverapps/web: Next.js UI (lesson panel + terminal + repo state)packages/shared: Shared types + protocolsandbox: Dockerfile for the Git sandbox image
- Install dependencies at the repo root.
- Start API and web in two terminals, or use the root
devscript.
npm install
npm run devAPI defaults to http://localhost:3001, web defaults to http://localhost:3000.
Copy the .env.example files and adjust as needed.
apps/api/.env.exampleapps/web/.env.example
- The sandbox manager is stubbed for now; wire in Docker/Podman in
apps/api/src/sandbox/dockerManager.ts. - The lesson format lives in JSON under
apps/api/lessons(3 starter lessons included).