A beautiful, interactive web application that visualizes Git commit history as an interactive graph. Built with React and powered by the GitHub API, this tool helps you understand repository evolution at a glance.
π Live Demo: github-visualizer-pi.vercel.app
- Interactive Graph Visualization: View commit history as an interactive, hierarchical graph using vis-network
- Direct GitHub Integration: Fetches commit data directly from GitHub's API
- Click to Explore: Click any commit node to open it directly on GitHub
- Easy to Use: Simply paste any GitHub repository URL to visualize its commits
The application features a modern, eye-catching design with:
- Animated gradient background (purple to blue tones)
- Floating blob effects for visual depth
- Custom Bitcount font family for a unique aesthetic
- Smooth animations and hover effects
- Hierarchical left-to-right commit graph layout
- Node.js (v14 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/Zarin21/github-visualizer.git
cd github-visualizer- Install dependencies:
npm install- Start the development server:
npm start- Open http://localhost:3000 in your browser
- Enter a GitHub repository URL (e.g.,
https://github.com/facebook/react) - Click "Load Graph"
- Explore the interactive commit history visualization
- Click any commit node to view it on GitHub
- Use mouse controls to:
- Zoom: Scroll wheel
- Pan: Click and drag
- Select: Click on nodes
- React - Frontend framework
- vis-network - Graph visualization library
- axios - HTTP client for API requests
- GitHub API - Commit data source
- Bitcount Fonts - Custom typography
github-visualizer/
βββ public/
β βββ index.html # Main HTML template
β βββ manifest.json # PWA manifest
βββ src/
β βββ components/
β β βββ Graph.js # Graph visualization component
β β βββ RepoInput.js # Repository URL input form
β βββ utils/
β β βββ githubAPI.js # GitHub API integration
β βββ App.js # Main application component
β βββ index.js # Application entry point
β βββ index.css # Global styles and animations
βββ package.json
- Hierarchical layout with commits flowing left to right
- Each node represents a commit with its message
- Edges show parent-child relationships between commits
- Color-coded nodes with hover effects
- Navigation buttons for easy graph exploration
- Fetches up to 100 most recent commits
- Displays commit messages, authors, and dates
- Direct links to GitHub commit pages
- Works with any public GitHub repository
- Zoom In/Out: Mouse wheel or navigation buttons
- Pan: Click and drag on empty space
- Move Nodes: Click and drag individual nodes
- View Commit: Click any node to open on GitHub
- Tooltip: Hover over nodes to see author and date
When you click on a node, aka a commit, it redirects you to that commit, as shown below:

- GitHub API has rate limits (60 requests/hour for unauthenticated users)
- Currently fetches the last 100 commits from the main branch
- Requires public repositories (no authentication implemented)
- GitHub OAuth integration for private repos
- Branch selection dropdown
- Commit filtering by author/date
- Search functionality within commits
- Multiple branch visualization
This project is open source and available under the MIT License.
- vis-network for the graph visualization library
- GitHub API for commit data
- Bitcount Fonts for typography
- Deployed on Vercel
