Try It Live ยท Features ยท Getting Started ยท Contributing
If you find this project helpful, please consider giving it a star on GitHub!
GitGud is an interactive learning platform designed to help developers master Git through hands-on practice. While traditional tutorials often rely on passive learning, GitGud provides a fully simulated Git environment where you can:
- Execute real Git commands in a safe sandbox
- See immediate visual feedback
- Progress through structured, bite-sized challenges
- Learn Git intuitively through gamification
Whether you're a complete beginner or looking to level up your Git skills, GitGud offers an engaging, interactive approach to learning this essential developer tool.
๐ Visit GitGud at www.gitmastery.me to start your journey!
- ๐ฅ๏ธ Interactive Terminal: Practice Git commands in a realistic simulated environment
- ๐ฏ Structured Learning Path: Progress through carefully designed levels of increasing complexity
- ๐ Visual Git Status: See your repository status visually update as you work
- ๐ฎ Playground Mode: Freely experiment with Git commands without level requirements
- ๐ Command Cheat Sheet: Quick reference for Git commands with explanations
- ๐ Progress Tracking: Track your learning journey with a visual progress system
- ๐ Multi-language Support: Available in both English and German
- ๐ช In-Game Shop: Earn points and purchase customization items and power-ups
- ๐จ Terminal Themes: Unlock beautiful terminal themes including Matrix, Golden, and Dark themes
- ๐ฑ Git Mascot Pet: Purchase an animated mascot that cheers you on during challenging levels
- ๐ Victory Sound Pack: Satisfying sound effects when completing levels and achieving milestones
- โก Double XP Weekends: Boost your point earning with 2x multiplier for 7 days
- ๐ Emoji Commit Messages: Smart emoji suggestions for better commit messages
- ๐ Achievement Badges: Visual recognition system with special badges and legendary status
- ๐ฒ Mini Games: Practice Git skills through fun interactive challenges
- ๐ Multiple Terminal Themes: Switch between different visual styles
- ๐ฑ Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- โก Performance Optimized: Fast loading with server-side rendering
- โฟ Accessibility: Built with accessibility in mind using Radix UI components
- ๐ฏ Contextual Help: Smart suggestions and hints based on current level
GitGud is built with modern web technologies to provide the best learning experience:
- Next.js 15 - React framework with server-side rendering, App Router, and performance optimizations
- TypeScript - Type-safe development with enhanced IDE support and error catching
- Tailwind CSS - Utility-first CSS framework for rapid, responsive design
- Radix UI - Headless, accessible UI components for dialogs, accordions, and form elements
- Lucide React - Beautiful, customizable SVG icon library
- shadcn/ui - Re-usable component system built on Radix UI and Tailwind CSS
- Custom Git Simulation - Full Git repository simulation in the browser
- React Context API - Global state management for game progress, themes, and user data
- LocalStorage - Client-side persistence for progress, purchases, and preferences
- ESLint & Prettier - Code linting and formatting for consistent code quality
- TypeScript Strict Mode - Enhanced type checking for robust applications
- Hot Module Replacement - Fast development with instant updates
- Next.js Image Optimization - Automatic image optimization and lazy loading
- Dynamic Imports - Code splitting for faster initial page loads
- Server Components - Improved performance with server-side rendering
- Node.js (v18 or higher)
- npm (v8 or higher)
- Clone the repository
git clone https://github.com/yourusername/gitgud.git
cd gitgud
- Install dependencies
npm install
- Start the development server
npm run dev
- Open your browser
Navigate to http://localhost:3000
to start learning Git!
For developers and contributors, detailed documentation is available to help you understand the codebase:
- Commands Implementation - How Git commands are implemented and how to add new ones
- Levels System - How levels and stages work and how to create new levels
- Translation System - How to add or modify translations
We welcome contributions to GitGud! Whether you're fixing bugs, improving the documentation, or adding new features, please follow these steps:
- Fork the repository
- Create a new branch for your feature (
git checkout -b feature/amazing-feature
) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
For more details on the project structure, check the documentation linked above.
- Enhanced Git Commands: Improved git add functionality to properly track files โ
- Smart Terminal: Enhanced terminal tab suggestion menu with space support โ
- Advanced Rebasing: Added comprehensive rebasing levels and scenarios โ
- Intelligent Suggestions: Implemented advanced terminal command suggestions โ
- Git Push Integration: Added full git push functionality with remote tracking โ
- Gamification System: Complete shop system with themes, mascot, sounds, and XP boosts โ
- Achievement Badges: Visual recognition system with special status indicators โ
- Mobile Optimization: Responsive design improvements for all device sizes โ
If you find GitGud helpful in your Git learning journey, please consider:
- Giving it a star on GitHub: Visit github.com/MikaStiebitz/Git-Gud and click the star button
- Sharing it with friends and colleagues who are learning Git
- Contributing to make it even better
Your support helps this educational tool reach more developers!
This project is licensed under the Restricted Use License - see the LICENSE file for details.
Made with โค๏ธ by Mika Stiebitz