CommitRecap turns a GitHub username into a clean year-in-review of commits, pull requests, reviews, languages, and repo focus.
- Live site: https://commit-recap.vercel.app
- Product Hunt: https://www.producthunt.com/products/commitrecap?launch=commitrecap
- User summary card with public profile details
- Year totals for commits, issues, pull requests, and reviews
- Monthly commit counts
- Repo focus and collaboration footprint stats
- Contribution heatmap data for charts
- Language usage by bytes and by repo stars
client/is a Next.js 16 app using the App Routerserver/is a FastAPI API that calls GitHub REST and GraphQL- API routes are prefixed with
/github/search - Endpoint shapes live in
docs/Endpoints.md
- Node.js 18+
- Python 3.11+
Create .env in server/ with these keys:
| key | purpose |
|---|---|
GITHUB_TOKEN |
GitHub personal access token |
GITHUB_BASE_URL |
GitHub API base URL |
APP_URL |
app URL used by the backend |
LANDING_URL |
landing page URL used by the backend |
START_DATE |
default start date for summaries,YYYY-MM-DD |
END_DATE |
default end date for summaries,YYYY-MM-DD |
cd server
pip install -r requirements.txt
python -m uvicorn main:app --reloadcd client
npm install
npm run devclient/src/app/Next.js routesclient/src/components/shared UIclient/src/hooks/React hooksclient/src/lib/utilitiesserver/api/routers/FastAPI routersserver/api/controllers/route handlersserver/config/config and env loadingassets/marketing images and logospostman/Postman collections
MIT. See LICENSE.



