Browse by type
Transform your GitHub & GitLab contributions into a stunning, Instagram Stories-style cinematic experience.
🌐 Live Demo • ✨ Features • ⚡ Quick Start • 🛠️ Tech Stack
| Feature | Description |
|---|---|
| 🎥 Cinematic Experience | 11 beautifully animated slides with Instagram Stories-like navigation |
| 📊 Live GitHub & GitLab Data | Real-time stats fetched from GitHub/GitLab API — commits, PRs, issues, reviews |
| 🔐 OAuth Authentication | One-click login with GitHub or GitLab |
| 🌓 Dark/Light Theme | Toggle between themes on main page and slides |
| 🧬 Smart Archetypes | AI-determined coding personas: Night Owl, Weekend Warrior, Grid Painter, and more |
| 📈 Velocity Charts | Animated contribution charts powered by Recharts |
| 🗓️ Contribution Grid | Visual heatmap of your 2025 coding activity |
| 🏆 Top 5 Repositories | Showcase your best projects with smart ranking |
| 🎨 Language Breakdown | Beautiful visualization of your tech stack (55+ languages!) |
| 📱 Mobile-First | Touch gestures: tap left/right to navigate, hold to pause |
| 🖼️ Poster Export | Download a shareable movie-poster style summary |
| 🔗 Social Sharing | Share to Twitter, LinkedIn, Reddit, WhatsApp with one click |
| 🎊 Confetti Celebration | End your story with style |
| 🔍 SEO Optimized | Built with Next.js for better search engine visibility |
next/font/google for better performanceProjects are now ranked using 12 factors instead of just stars: - ⭐ Stars & Forks (logarithmic scale) - 📅 Recent activity in 2025 (time-decay bonus) - ✨ Original work (not forks) - 📝 Description & Topics - 💻 Primary language - 📦 Repository size - 🐛 Open issues (activity indicator) - 🆕 Created in 2025 bonus - 👀 Watchers - 📦 Archived penalty
Experience your year through 11 cinematic slides:
| # | Slide | What It Shows |
|---|---|---|
| 1 | Title | Your username & avatar with dramatic reveal |
| 2 | Velocity | Animated area chart of daily commits |
| 3 | Grid | Full-year contribution heatmap |
| 4 | Composition | Breakdown: Commits vs PRs vs Issues vs Reviews |
| 5 | Routine | Your busiest day of the week |
| 6 | Productivity | Peak coding hours & time-of-day persona |
| 7 | Community | Followers, stars, and repo count |
| 8 | Languages | Top 3 programming languages |
| 9 | Top 5 Repos | Your best repositories ranked by score |
| 10 | Top Repo | Spotlight on your #1 repository |
| 11 | Poster | 🎬 Downloadable movie poster + Share buttons |
Based on your behavior patterns, you'll be assigned one of these personas:
| Archetype | Criteria |
|---|---|
| 🔀 The Pull Request Pro | Opens many PRs (>20% of activity) |
| 👀 The Reviewer | Frequent code reviewer (>10% of activity) |
| 🌙 The Night Owl | Peak activity after 10 PM |
| 🌅 The Early Bird | Peak activity before noon |
| 🗓️ The Weekend Warrior | >35% commits on weekends |
| 🎨 The Grid Painter | 1200+ commits (green squares everywhere!) |
| ⚡ The Consistent | 400+ commits, steady contributor |
| 📋 The Planner | High issue-to-commit ratio |
| ⭐ The Community Star | 500+ followers or 1000+ total stars |
| 🔧 The Tinkerer | Default — you're exploring! |
# Clone the repository
git clone https://github.com/PankajKumardev/gitstory-2025.git
cd gitstory-2025
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your OAuth credentials
# Start development server
npm run dev
Open http://localhost:3000 and enter any GitHub username!
💡 Tip: Type
demoto see a full experience with mock data.
Click GitHub or GitLab button on the home page for one-click authentication.
# NextAuth Configuration
NEXTAUTH_URL=https://gitstory.pankajk.tech
NEXTAUTH_SECRET=your-secret-key
# GitHub OAuth (https://github.com/settings/developers)
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret
# GitLab OAuth (https://gitlab.com/-/user_settings/applications)
GITLAB_CLIENT_ID=your-gitlab-client-id
GITLAB_CLIENT_SECRET=your-gitlab-client-secret
| Provider | Callback URL |
|---|---|
| GitHub | https://yourdomain.com/api/auth/callback/github |
| GitLab | https://yourdomain.com/api/auth/callback/gitlab |
read_user — Profile inforead_api — API accessread_repository — Repository access| Feature | Without OAuth | With OAuth |
|---|---|---|
| Rate Limit | 60/hour | 5000/hour |
| Private Repos | ❌ | ✅ |
| Org Repos | ❌ | ✅ |
| Private Contributions | ❌ | ✅ |
| Technology | Purpose |
|---|---|
| Next.js 16 | React framework with App Router for SEO & performance |
| React 19 | UI Components with latest features |
| NextAuth.js | OAuth authentication for GitHub & GitLab |
| TypeScript | Type-safe development |
| Tailwind CSS 4 | Utility-first styling with @theme config |
| Framer Motion | Buttery-smooth animations |
| Recharts | Beautiful, responsive charts |
| Lucide React | Consistent icon system |
| html-to-image | Poster PNG export |
| canvas-confetti | Celebration effects 🎊 |
| Vercel Analytics | Privacy-friendly analytics |
| Button | Effect |
|---|---|
| ⏸️ Pause | Pause slide timer |
| ☀️/🌙 Theme | Toggle dark/light mode |
| ✕ Close | Exit story |
| 📤 Share | Share to social (poster slide) |
| Action | Effect |
|---|---|
| Tap right 2/3 | Next slide |
| Tap left 1/3 | Previous slide |
| Hold anywhere | Pause timer |
| Release | Resume timer |
| Key | Effect |
|---|---|
| → or D | Next slide |
| ← or A | Previous slide |
| Space | Pause/Resume |
| Escape | Exit story |
gitstory-2025/
├── app/
│ ├── api/auth/[...nextauth]/ # NextAuth API route
│ ├── layout.tsx # Root layout with providers
│ ├── page.tsx # Main page with OAuth
│ ├── globals.css # Tailwind + custom styles
│ └── sitemap.ts # Dynamic sitemap
├── components/
│ ├── providers/
│ │ └── SessionProvider.tsx # NextAuth session wrapper
│ ├── StoryContainer.tsx # Slide navigation & controls
│ ├── SlideLayout.tsx # Theme-aware slide wrapper
│ └── slides/ # 11 slide components
├── context/
│ └── ThemeContext.tsx # Dark/light theme context
├── lib/
│ └── auth.ts # NextAuth configuration
├── services/
│ ├── githubService.ts # GitHub API integration
│ ├── gitlabService.ts # GitLab API integration
│ └── scoringAlgorithms.ts # Scoring logic
├── types.ts # TypeScript interfaces
└── constants.ts # Mock data & configuration
# Production build
npm run build
# Start production server
npm start
Deploy to any platform that supports Next.js: - Vercel (recommended - zero config) - Netlify - Railway - Cloudflare Pages
Add these in your Vercel project settings:
- NEXTAUTH_URL
- NEXTAUTH_SECRET
- GITHUB_CLIENT_ID
- GITHUB_CLIENT_SECRET
- GITLAB_CLIENT_ID
- GITLAB_CLIENT_SECRET
MIT License with Attribution — see LICENSE for full text.
If you use, modify, or build upon this project, you MUST:
This project took significant effort to create. If you found it useful, please: - ⭐ Star this repo - 🔗 Credit the original when sharing - 🐦 Tag @pankajkumar_dev when posting about it
Copyright © 2024-2025 Pankaj Kumar
Made with 💜 for developers who ship
Star ⭐ this repo if you found it useful!
browse all types & interfaces →
$ claude mcp add gitstory-2025 \
-- python -m otcore.mcp_server <graph>