Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
MikaStiebitz/Git-Mastery: A game to easily learn Git!

MikaStiebitz/Git-Mastery: A game to easily learn Git!

18 hours ago

GitMastery — Master Git through play

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

Play at gitmastery.me No account needed GitHub stars

Next.js 16 TypeScript Tailwind CSS 4 GSAP


🎮 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.

→ Start at gitmastery.me

📣 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 . Node 20 or newer.

| 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.

  1. Fork the repository
  2. Branch off: git checkout -b feature/amazing-feature
  3. Make your changes, then npm run test:run and npm run build
  4. Commit and push, then open a pull request
CI has to stay green: build, typecheck and the full test suite run on every pull request. The translation parity test will fail if a language is missing a key, so add new strings to all six.

⭐ 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.

Sponsor on GitHub Buy me a coffee

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

Chat with me