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 |
- GitHub OAuth β One-click login, no token copying needed
- GitLab OAuth β Full GitLab support with OAuth authentication
- Private repos & org repos automatically included when authenticated
- Dark/Light Mode β Toggle on main page and within slide presentation
- Play/Pause Controls β On-screen buttons during story playback
- Theme-aware slides β All 11 slides adapt to your preferred theme
- Share Button β On the final poster slide
- Multiple platforms β Twitter, LinkedIn, Reddit, WhatsApp
- Copy Link β With toast notification
- Pre-written share text β Automatically includes your stats
- Full GitLab API integration β Same cinematic experience for GitLab users
- OAuth authentication β Login with GitLab account
- Project stats β Commits, merge requests, issues from GitLab
- Migrated from Vite to Next.js 16 for better SEO and performance
- Server-side metadata for improved social sharing (Twitter, Facebook, LinkedIn)
- Optimized fonts with
next/font/googlefor better performance - Dynamic sitemap generation for search engines
- With Token: Only 4 API calls (GraphQL bundles contributions + PR/Issue/Review counts!)
- Without Token: 7 API calls (REST fallback)
- 43% fewer API calls when authenticated!
Projects 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 devOpen 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 startDeploy to any platform that supports Next.js:
- Vercel (recommended - zero config)
- Netlify
- Railway
- Cloudflare Pages
Add these in your Vercel project settings:
NEXTAUTH_URLNEXTAUTH_SECRETGITHUB_CLIENT_IDGITHUB_CLIENT_SECRETGITLAB_CLIENT_IDGITLAB_CLIENT_SECRET
MIT License with Attribution β see LICENSE for full text.
If you use, modify, or build upon this project, you MUST:
- β Credit the original author β Include "Based on GitStory by Pankaj Kumar" in your README
- β Link to the original repo β https://github.com/PankajKumardev/gitstory-2025
- β Do NOT claim original authorship β This includes Product Hunt, social media, or any other platform
- β Do NOT remove copyright notices β Keep the license file and copyright comments
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!