Skip to content

sabahattink/commit-story

Repository files navigation

Commit Story

See the story behind any GitHub repository

Paste a repo URL. Get an interactive timeline, contributor map, and milestone journey β€” instantly.

Live Demo Β Β  License: MIT


Try it now → · Compare Repos · GitHub Wrapped · Report Bug


Try it β†’ commitstory.dev




What is Commit Story?

Every repository has a story β€” the first commit, the early contributors, the milestones, the growth. Commit Story makes it visible.

Enter any public GitHub repo URL and get a complete visual overview: how active is the project, who drives it, when did it peak, and how does it compare to others.


Features

πŸ“Š Repository Story β€” Stats at a glance: total commits, contributors, project age, weekly commit average, most active day, top author.

πŸ“ˆ Commit Activity Heatmap β€” GitHub-style contribution grid showing the last 52 weeks of activity, powered by the GitHub Statistics API.

πŸ• Interactive Timeline β€” Visual timeline of the latest 100 commits with milestone markers (first commit, version tags, 100th commit milestone).

βš”οΈ Compare Repos β€” Put two repositories side by side. See which one has more commits, more contributors, higher weekly velocity. Winner badge included.

🎁 GitHub Wrapped β€” Enter any username and see their profile summary: top repos by stars, most-used languages, total stars, member since date.

πŸ“… Year in Review β€” Annual commit breakdown with a monthly bar chart. See which month was the busiest and how many contributors were active.

πŸ“› README Badge β€” Drop a live badge into your project's README with one click. Three styles: Flat, Square, For the Badge.

πŸ”— Embeddable Widget β€” A compact card widget you can iframe into any page or blog post.

πŸŒ™ Dark Mode β€” Toggle between light and dark themes. Light mode is the default.

πŸ” Category Filters β€” Filter commits by type: feat, fix, docs, chore, perf.

πŸ“€ Share Buttons β€” One-click share to X/Twitter, LinkedIn, Reddit, or copy the link.


Live Examples

Page Link
Story β€” vercel/next.js commitstory.dev/story/vercel/next.js
Story β€” facebook/react commitstory.dev/story/facebook/react
Compare β€” Next.js vs React commitstory.dev/compare?repo1=vercel/next.js&repo2=facebook/react
Wrapped β€” Linus Torvalds commitstory.dev/wrapped/torvalds
Year in Review β€” Next.js 2025 commitstory.dev/story/vercel/next.js/2025
Trending commitstory.dev/trending

Add a Badge to Your README

Show off your project's commit stats:

[![Commit Story](https://commitstory.dev/api/badge/YOUR_OWNER/YOUR_REPO?style=flat)](https://commitstory.dev/story/YOUR_OWNER/YOUR_REPO)

Example:

Commit Story

Three styles available: flat (default), square, for-the-badge.


API

All endpoints are public and free to use.

GET /api/story/:owner/:repo        β†’ Repository story as JSON
GET /api/badge/:owner/:repo        β†’ SVG badge (query: ?style=flat|square|for-the-badge)
GET /api/og/:owner/:repo           β†’ OG image (1200Γ—630)

Tech Stack

Layer Technology
Framework Next.js 15 β€” App Router, Server Components
Language TypeScript
Styling Tailwind CSS
Data GitHub REST API via Octokit
Heatmap GitHub Statistics API
Theme next-themes
Hosting Vercel

Getting Started

Prerequisites

Install

git clone https://github.com/scuton-technology/commit-story.git
cd commit-story
npm install

Configure

cp .env.example .env.local

Edit .env.local and add your GitHub token:

GITHUB_TOKEN=ghp_your_token_here

Run

npm run dev

Open http://localhost:3000 and paste any repo URL.


Self-Hosting with Docker

docker compose up -d

The app runs on port 3000. Set GITHUB_TOKEN as an environment variable.


Project Structure

commit-story/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/              # Next.js App Router pages
β”‚   β”‚   β”œβ”€β”€ story/        # Repository story page
β”‚   β”‚   β”œβ”€β”€ compare/      # Compare two repos
β”‚   β”‚   β”œβ”€β”€ trending/     # Trending repositories
β”‚   β”‚   β”œβ”€β”€ wrapped/      # GitHub user wrapped
β”‚   β”‚   └── api/          # Badge, OG image, story endpoints
β”‚   β”œβ”€β”€ components/       # React components
β”‚   └── lib/              # GitHub API client, utilities
β”œβ”€β”€ public/               # Static assets
β”œβ”€β”€ Dockerfile            # Docker support
β”œβ”€β”€ docker-compose.yml    # Docker Compose
└── next.config.ts        # Next.js configuration

Contributing

Contributions are welcome. Please read CONTRIBUTING.md before opening a PR.

  1. Fork the repo
  2. Create your branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT β€” see LICENSE for details.


Credits

Built by Scuton Technology



If you find this useful, give it a ⭐


Made with code, coffee, and curiosity.

About

🎬 Turn any GitHub repo's commit history into an interactive visual story

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages