GitRoasted
Analyze, Roast & Rank Your GitHub Profile
Install / Use
/learn @MdKasif0/GitRoastedREADME
🔥 GitRoasted
Analyze, Roast & Rank Your GitHub Profile
Get your GitHub developer score out of 1000 with a savage AI roast
🚀 Live Demo • Made by- https://x.com/md_kasif_uddin 📖 Documentation • 🐛 Report Bug • ✨ Request Feature
</div>✨ What is GitRoasted?
GitRoasted is a free, open-source developer tool that analyzes your GitHub profile and gives you:
- 📊 Comprehensive Score - Out of 1000 based on 8 key metrics
- 🔥 AI-Generated Roast - Savage but funny feedback on your coding habits
- 🏆 Global Leaderboard - Compete with developers worldwide
- 💡 Improvement Tips - Actionable advice to boost your score
- ⚔️ Profile Comparison - Battle other developers head-to-head
- 📤 Shareable Cards - Beautiful cards for social media
"GitRoasted turned my GitHub profile analysis into an addictive game!" - Developer
🎥 Documentation as a video
<div align="center"> <a href="https://youtu.be/XzzdQJDsYOw"> <img src="./public/video-thumbnail.png" width="100%" style="max-width: 800px; cursor: pointer;" alt="Watch GitRoasted Introduction"> </a>👆 Click to watch the documentation video
</div>Try it now:
- Visit gitroasted.netlify.app
- Enter any GitHub username
- Get instant analysis + roast!
Features in Action:
- 🎯 Real-time GitHub profile analysis
- 🤖 AI-powered personalized roasts
- 📊 Interactive score breakdowns
- 🏆 Live leaderboard rankings
- 🎨 Customizable share cards
🚀 Features
Core Features
- ✅ GitHub Profile Analysis - Analyzes 100+ data points from GitHub API
- ✅ 8-Metric Scoring System - Comprehensive evaluation (Impact, Consistency, Quality, Community, Diversity, Experience, Activity, Bonuses)
- ✅ AI-Powered Roasts - Personalized 2-3 line roasts that are savage yet appreciative
- ✅ Global Leaderboard - Real-time ranking with pagination and search
- ✅ Profile Comparison - Head-to-head battles with detailed breakdowns
- ✅ Quick Wins - Personalized improvement roadmap with actionable tips
- ✅ Shareable Cards - Generate cards for Instagram, Twitter, or 3:4 format
- ✅ Dark/Light Themes - Seamless theme switching with system preference detection
- ✅ Fully Responsive - Optimized for mobile, tablet, and desktop
- ✅ PWA Support - Installable progressive web app with offline support
Advanced Features
- 🎯 Category Breakdown - Detailed scoring across all 8 categories
- 📈 Trend Analysis - Track score improvements over time
- 🗺️ Improvement Roadmap - 3-phase plan to boost your score
- 💡 Project Recommendations - Specific project ideas based on your gaps
- 📊 Radar Chart Visualization - Visual comparison of your strengths
- 🔔 Real-time Updates - Live leaderboard with Firebase sync
- 🎨 Card Customization - Multiple themes and layouts for sharing
- 🌐 Multi-language Support - Support for 10+ programming languages
🛠️ Tech Stack
Frontend
- Framework: Next.js 14 (App Router, TypeScript)
- Styling: Tailwind CSS + Custom animations
- UI Components: Custom components with glass-morphism design
- Charts: Recharts for data visualization
- Icons: React Icons
- State Management: React Context + Hooks
Backend & Database
- Database: Firebase Firestore
- Authentication: None (public access)
- API: GitHub REST API v3
- Caching: localStorage + sessionStorage for performance
Deployment & Infrastructure
- Hosting: Netlify
- CDN: Netlify Edge Network
- SSL: Auto-managed by Netlify
- Analytics: Google Analytics 4
Development Tools
- Language: TypeScript 5.0
- Package Manager: npm
- Linting: ESLint + Prettier
- Version Control: Git + GitHub
🏗️ Architecture
┌─────────────────────────────────────────────────────────┐
│ Client Browser │
│ (Next.js 14 App + React Components + Tailwind CSS) │
└────────────────┬────────────────────────────────────────┘
│
├─ GitHub API (REST v3)
│ └─ User data, repos, contributions
│
├─ Firebase Firestore
│ └─ Leaderboard storage
│ └─ User scores cache
│
└─ localStorage
└─ Client-side caching
└─ User preferences
Data Flow:
1. User enters GitHub username
2. Fetch data from GitHub API (parallel requests)
3. Calculate score using 8-metric algorithm
4. Generate AI roast based on profile data
5. Store result in Firestore (if new/improved score)
6. Display results with animations
7. Cache in localStorage for 24h
📊 Scoring Algorithm
GitRoasted evaluates profiles across 8 key dimensions (total 1000 points):
| Category | Points | Description | |----------|--------|-------------| | 💫 Impact | 250 | Stars received, repo quality, fork impact | | 🔥 Consistency | 200 | Contribution frequency, streaks, commitment | | ✨ Quality | 150 | Code reviews, documentation, testing | | 👥 Community | 150 | Followers, collaboration, social engagement | | 🌈 Diversity | 100 | Programming languages, tech stack variety | | 📅 Experience | 75 | Account age, profile completeness | | ⚡ Activity | 50 | Recent contributions (last 30-90 days) | | 🏆 Bonus | 25 | Exceptional achievements (viral repos, year streaks) |
Score Ranges
- 🏆 Elite (900-1000): Top 1% - GitHub Legend
- ⭐ Exceptional (800-899): Top 5% - Star Developer
- 💪 Excellent (700-799): Top 10% - Highly Skilled
- 👍 Above Average (600-699): Top 25% - Solid Developer
- 📈 Average (400-599): Top 50% - Keep Building
- 🌱 Developing (0-399): Room for Growth
🚀 Getting Started
Prerequisites
Before you begin, ensure you have:
- Node.js 18.0+ installed (Download)
- npm 9.0+ (comes with Node.js)
- Git installed (Download)
- Firebase account (Sign up free)
- GitHub account (for testing)
📦 Installation
-
Clone the repository
git clone https://github.com/MdKasif0/GitRoasted.git cd GitRoasted -
Install dependencies
npm install -
Set up environment variables
Create a
.env.localfile in the root directory:# Firebase Configuration NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id # GitHub API (Optional - for higher rate limits) GITHUB_TOKEN=your_github_personal_access_token # Analytics (Optional) NEXT_PUBLIC_GA_MEASUREMENT_ID=your_ga_id -
Set up Firebase Firestore
a. Create a new Firebase project
b. Enable Firestore Database
c. Create a collection namedleaderboard
d. Set up Firestore rules:rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /leaderboard/{document} { allow read: if true; allow write: if true; } } }e. Create composite index:
- Collection:
leaderboard - Fields:
score(Descending)
- Collection:
-
Run the development server
npm run dev -
Open your browser
Navigate to http://localhost:3000
🔨 Build for Production
# Build the application
npm run build
# Start production server
npm start
# Or build and export static files
npm run build && npm run export
🚢 Deployment
Deploy to Netlify (Recommended)
-
Connect your repository
- Sign up at Netlify
- Click "New site from Git"
- Connect your GitHub repository
-
Configure build settings
Build command: npm run build Publish directory: .next -
Add environment variables
- Go to Site settings → Environment variables
- Add all variables from
.env.local
-
Deploy
- Click "Deploy site"
- Your site will be live at
yoursite.netlify.app
Deploy to Vercel
# Install Vercel CLI
npm i -g vercel
# Deploy
vercel
# Follow the prompts to deploy
📖 Usage
Analyze a Profile
// Visit the homepage
https://gitroasted.netlify.app
// Enter any GitHub usern
