GitMastery
Master Git through play.
A browser game where you type real Git commands and watch the commit graph react.
Play now · Features · Getting started · Contributing · Sponsor
🎮 What it is
Most Git tutorials are something you read. GitMastery is something you play.
$ git switch -c feature
Switched to a new branch 'feature'
$ git commit -am "add cat gifs"
[feature 7b2d410] add cat gifs ★ +50 XP
Every level runs a full Git simulation in your browser: you type real commands into a real
terminal, the commit graph grows as you go, and nothing you break is ever real. No install, no
account, no ads — just git init and go.
📣 Creators found it on their own
Nobody was paid for these. They just liked the game.
| Creator | Reel | | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- | | @softwarewithnick | "Master git easily 😎" | | @softwarewithnick | "Master git easily 😎" — second reel | | @staxx_ai | "Website no one really talks about… but should 👀" | | @shivaconceptsolution | "Want to master Git without crying over lost commits ever again? 😭" |
Posted about it somewhere? Open an issue and it goes on the list.
✨ Features
Learn by doing
| | |
| ------------------------ | -------------------------------------------------------------------------- |
| 🖥️ Real terminal | A simulated Git environment that answers like the real thing |
| 🌳 Live commit graph | Every level draws your repository as you type — tap a node for details |
| 🃏 Visual mode | Prefer clicking to typing? Play Git commands as cards, like Oh My Git! |
| 🎯 Structured path | Stages that build on each other, from git init to rebase and bisect |
| 🎮 Playground | A free sandbox with no level goals, plus a printable cheat sheet |
| 📈 Progress tracking | Points, completed levels and your current stage, saved locally |
| ⭐ Stars and ranks | Up to three stars per level for clean solves, and a rank that follows XP |
| 🏅 Achievements | Sixteen milestones with progress bars, shown on a leaderboard for accounts |
| 🌍 Six languages | English, German, Spanish, Persian, Hindi and Turkish |
Play for it
| | | | ---------------------- | --------------------------------------------------------------------------- | | 🏪 Shop | Spend earned coins on terminal themes, a mascot and power-ups | | 🎨 Terminal themes | Matrix green, Golden luxury and Dark blue — they repaint the whole terminal | | 🎲 Mini games | Branch Master, Graph Puzzle, Commit Champion and Merge Master | | 🏆 Badges | Achievement tokens that show up in the navbar | | ⚡ Double XP | A weekend multiplier, if you buy it |
🛠️ Tech stack
Next.js 16 (App Router, static export) · TypeScript · Tailwind CSS 4 · GSAP ·
Radix UI · Lucide — with a full Git simulation, level engine and progress system written
from scratch, and React Context plus localStorage holding the state. The only backend is an
optional account API (a Cloudflare Worker with a D1 database, in worker/) that carries
progress between devices and feeds the leaderboard; the game plays fully without it. No tracking
beyond privacy-friendly analytics.
The visual system is documented in DESIGN.md; the product decisions behind it live in PRODUCT.md.
🚦 Getting started
git clone https://github.com/MikaStiebitz/Git-Mastery
cd Git-Mastery
npm install
npm run dev
Then open
| Command | What it does |
| ------------------ | ---------------------------------- |
| npm run dev | Dev server with hot reload |
| npm run build | Static export to out/ |
| npm run test | Vitest in watch mode |
| npm run test:run | The suite once, the way CI runs it |
| npm run format | Prettier over the repo |
📚 Documentation
- Commands — how Git commands are implemented and how to add one
- Levels — how stages and levels work, and how to write a new one
- Translations — how to add or fix a language
- Design system — tokens, components and the rules they follow
🤝 Contributing
Pull requests are welcome — new levels and translations especially.
- Fork the repository
- Branch off:
git checkout -b feature/amazing-feature - Make your changes, then
npm run test:runandnpm run build - Commit and push, then open a pull request
⭐ Support this project
GitMastery is free, has no ads and needs no account. Sponsors pay for the domain, the hosting and the time that goes into new levels — and keep the whole thing open source.
Not in a position to sponsor? A star helps just as much, and sharing it with someone who is fighting their first merge conflict helps even more.
📈 Star history
📜 License
Restricted Use License — see LICENSE.
Made with ❤️ by Mika Stiebitz