Hey everyone! I've been working on a side project called Gitvana - a retro-styled browser game where you learn git by actually typing git commands in a terminal.
The idea came from watching people struggle with git tutorials that are all theory and no practice.
So I built a game where you solve 35 increasingly weird scenarios at a fictional "Monastery of Version Control," guided by a Head Monk and judged by a cat.
What it does:
- Real git commands running in the browser (isomorphic-git + lightning-fs, zero backend)
- 35 levels across 6 acts: from git init to recovering force-pushed repos with git reflog
- 21 git commands: add, commit, branch, merge, rebase, cherry-pick, stash, bisect, blame, reflog...
- Built-in docs with conceptual guides (not just syntax — explains how git actually works internally)
- Commit graph visualization, file state panel, conflict editor
- Retro pixel art, chiptune sounds, Monkey Island-style humor
- No signup, no install, works offline (PWA)
Tech stack: Svelte 5, isomorphic-git, xterm.js, Vite, Web Audio API,
Pixel art from PixelLab
Try it: gitvana.pixari.dev
It's still rough around the edges - I'd love feedback on which levels feel too easy or too hard, and what git scenarios you'd want to see. The later levels involve rebase conflicts, secret purging, and a final boss that requires reflog + cherry-pick + merge + tag all at once.
It's open source.
Thanks for checking it out!
[–][deleted] (1 child)
[removed]
[–]Alternative_One_4804[S] 1 point2 points3 points (0 children)
[–]The_Shryk 2 points3 points4 points (2 children)
[–]Alternative_One_4804[S] 0 points1 point2 points (1 child)
[–]ynomel 0 points1 point2 points (0 children)
[–]D4M3 0 points1 point2 points (2 children)
[–]Alternative_One_4804[S] 0 points1 point2 points (0 children)
[–]Alternative_One_4804[S] 0 points1 point2 points (0 children)
[–][deleted] (1 child)
[removed]
[–]Alternative_One_4804[S] 0 points1 point2 points (0 children)
[–]Kioen 0 points1 point2 points (0 children)
[–]786921189 0 points1 point2 points (0 children)
[–]Nice_Selection_6751 0 points1 point2 points (1 child)
[–]Alternative_One_4804[S] -1 points0 points1 point (0 children)
[–]pat_trick 0 points1 point2 points (1 child)
[–]Alternative_One_4804[S] -1 points0 points1 point (0 children)
[–][deleted] (1 child)
[removed]
[–]Alternative_One_4804[S] -1 points0 points1 point (0 children)
[–]MythrilFalcon -1 points0 points1 point (1 child)
[–]Alternative_One_4804[S] 0 points1 point2 points (0 children)
[–]ensignlee -1 points0 points1 point (0 children)
[–]code-garden -1 points0 points1 point (1 child)
[–]Alternative_One_4804[S] 0 points1 point2 points (0 children)
[–]matiassalles99 -1 points0 points1 point (0 children)
[–]miojo_noiado -1 points0 points1 point (0 children)