- Shows user info: avatar, name, bio, join date, repos, followers, and following.
<img src="https://gitlyy.vercel.app/api/profile?username=YOUR_USERNAME&hide_border=true"/>I. GitHub-style contribution heatmap with daily commit counts.
<img src="https://gitlyy.vercel.app/api/contribution?username=YOUR_USERNAME&hide_border=true"/>II. Pulse (monthly bars + 30-day trend):
<img src="https://gitlyy.vercel.app/api/contribution?username=YOUR_USERNAME&layout=pulse&hide_border=true"/>I. Horizontal stacked bar of languages with percentages using GitHub's official colors.
<img src="https://gitlyy.vercel.app/api/languages?username=YOUR_USERNAME&hide_border=true"/>II. Compact:
<img src="https://gitlyy.vercel.app/api/languages?username=YOUR_USERNAME&layout=compact&hide_border=true"/>III. Donut:
<img src="https://gitlyy.vercel.app/api/languages?username=YOUR_USERNAME&layout=donut&hide_border=true"/>I. Current and longest contribution streaks with fire visual and progress bar.
<img src="https://gitlyy.vercel.app/api/streak?username=YOUR_USERNAME&hide_border=true"/>II. Compact (total, current streak, longest streak):
<img src="https://gitlyy.vercel.app/api/contribution?username=YOUR_USERNAME&layout=compact&hide_border=true"/>I. PR-style ranked list of days from highest to lowest commit count, with large green square markers and count bars.
<img src="https://gitlyy.vercel.app/api/commits?username=YOUR_USERNAME&hide_border=true"/>II. Custom width:
<img src="https://gitlyy.vercel.app/api/commits?username=YOUR_USERNAME&width=520&hide_border=true"/>III. Compact (best day, active days, daily average):
<img src="https://gitlyy.vercel.app/api/commits?username=YOUR_USERNAME&layout=compact&hide_border=true"/>I. PR count with per-repository breakdown and progress bars.
<img src="https://gitlyy.vercel.app/api/pr-stats?username=YOUR_USERNAME&hide_border=true"/>II. Compact:
<img src="https://gitlyy.vercel.app/api/pr-stats?username=YOUR_USERNAME&layout=compact&hide_border=true"/>- Calculates actual coding hours by analyzing commit timestamp gaps.
Formula: TWt = Σ (Ti+1 - Ti) for all i where (Ti+1 - Ti) < 5 hours
Where:
TWt= Total Working TimeΣ= Sum of allTi= Timestamp of commit iTi+1= Timestamp of next commit- Threshold: Only counts gaps < 5 hours (assumes longer gaps are breaks/sleep)
<img src="https://gitlyy.vercel.app/api/working-hours?username=YOUR_USERNAME&hide_border=true"/>- Shows total stats: Stars, Commits, PRs, Issues, Contributed to.
<img src="https://gitlyy.vercel.app/api/overview?username=YOUR_USERNAME&hide_border=true"/>Copy any card URL and replace YOUR_USERNAME with your GitHub username:
## My GitHub Stats
<img src="https://gitlyy.vercel.app/api/profile?username=YOUR_USERNAME&hide_border=true"/>## GitHub Stats
<img src="https://gitlyy.vercel.app/api/profile?username=YOUR_USERNAME&hide_border=true"/>
<img src="https://gitlyy.vercel.app/api/contribution?username=YOUR_USERNAME&hide_border=true"/>
<img src="https://gitlyy.vercel.app/api/streak?username=YOUR_USERNAME&hide_border=true"/>
<img src="https://gitlyy.vercel.app/api/languages?username=YOUR_USERNAME&layout=donut&hide_border=true"/>
<img src="https://gitlyy.vercel.app/api/commits?username=YOUR_USERNAME&hide_border=true"/>
<img src="https://gitlyy.vercel.app/api/pr-stats?username=YOUR_USERNAME&hide_border=true"/>| Endpoint | Description | Layouts | Refresh |
|---|---|---|---|
/api/profile |
User profile info | - | 2 hours |
/api/contribution |
Contribution heatmap | default, compact, pulse |
30 min |
/api/languages |
Language distribution | default, compact, donut |
30 min |
/api/streak |
Streak stats | - | 30 min |
/api/commits |
Commits ranking | default, compact |
30 min |
/api/pr-stats |
Pull request stats | default, compact |
30 min |
/api/working-hours |
Estimated coding hours | - | 2 hours |
/api/overview |
Overall stats summary | - | 30 min |
All endpoints support these query parameters:
| Parameter | Description | Example |
|---|---|---|
username |
GitHub username (required) | torvalds |
theme |
Color theme | dark, synthwave, radical |
hide_border |
Remove card border | true |
layout |
Card layout variant | compact, pulse, donut |
bg_color |
Background color (hex) | 010409 |
title_color |
Title color (hex) | 58a6ff |
text_color |
Text color (hex) | e6edf3 |
border_color |
Border color (hex) | 30363d |
width |
Card width (supported by profile, PR stats, commits) | 520 |
max_langs |
Max languages shown | 15 |
refresh |
Force data refresh | true |
Add &theme=NAME to any card URL:
| Theme | Preview Accent |
|---|---|
dark |
Blue |
synthwave |
Pink |
radical |
Hot Pink |
tokyonight |
Blue |
dracula |
Purple |
gruvbox |
Yellow |
monokai |
Green |
nord |
Cyan |
solarized_dark |
Teal |
catppuccin |
Lavender |
github_dark |
Green |
highcontrast |
Yellow |
<img src="https://gitlyy.vercel.app/api/profile?username=YOUR_USERNAME&theme=synthwave&hide_border=true"/>Override any color with hex values (without #):
&bg_color=010409&title_color=58a6ff&text_color=e6edf3&border_color=30363d
Cards automatically update based on data type:
| Data | Cache Duration |
|---|---|
| Contributions, PRs, Languages, Commits, Streak, Overview | 30 minutes |
| Profile, Working Hours | 2 hours |
Data is cached server-side. CDN caches the response. Stale content is served while refreshing in the background.
Add &refresh=true to any URL to bypass the cache:
https://gitlyy.vercel.app/api/profile?username=YOUR_USERNAME&refresh=true
- No authentication required - uses public GitHub API
- Each user's data is cached separately
- Auto-refreshes when cache expires
- Works for any public GitHub profile
- Zero dependencies - pure Node.js
- Fork this repo
- Import at vercel.com (free tier)
- Click Deploy
MIT














