Generate customizable GitHub contribution heatmaps with SVG rendering, dark mode, visual effects, and extensive styling options. Fully mobile-optimized.
Deployed at: gh-heat.anishroy.com
Replace username with any GitHub username:
https://gh-heat.anishroy.com/api/username/svghttps://gh-heat.anishroy.com/api/username/svg?theme=purple&darkMode=trueGET /api/[username]/svgReturns an SVG image of the contribution graph. Supports extensive customization via query parameters.
GET /api/[username]Returns raw contribution data as JSON with total count, date range, and daily contributions.
GET /[username]/canvasHTML page optimized for iframe embedding with horizontal scrolling support.
| Parameter | Values | Description |
|---|---|---|
theme | accent, green, blue, purple, red | Color theme (default: green) |
darkMode | true, false | Enable dark mode |
colors | 5 hex codes (no #) | Custom palette (comma-separated) |
v | year (e.g., 2024) | Filter by year |
| Parameter | Values | Description |
|---|---|---|
shape | square, circle | Cell shape (default: square) |
radius | number | Border radius in px (default: 2) |
borderWidth | number | Border width in px (default: 1) |
borderColor | hex or rgba | Border color |
shadow | true, false | Add drop shadow |
| Parameter | Values | Description |
|---|---|---|
font | font family | Custom font (default: system) |
fontSize | number | Font size in px (default: 10) |
fontWeight | 100-900 | Font weight (default: 400) |
textColor | hex color | Label text color |
| Parameter | Values | Description |
|---|---|---|
bg | hex color | Background color |
transparent | true, false | Transparent background |
gradient | from,to,direction | Background gradient (horizontal, vertical, diagonal) |
| Parameter | Values | Description |
|---|---|---|
cellSize | number | Cell size in px (default: 11) |
cellGap | number | Gap between cells in px (default: 2) |
width | number | Total SVG width (auto if not set) |
height | number | Total SVG height (auto if not set) |
padding | number | Padding in px (default: 10) |
mobile | true, false | Apply mobile-optimized defaults |
| Parameter | Values | Description |
|---|---|---|
showMonthLabels | true, false | Show month labels (default: true) |
showDayLabels | true, false | Show day labels (default: true) |
showLegend | true, false | Show legend (default: true) |
legendPos | top, bottom, left, right | Legend position (default: bottom) |
| Parameter | Values | Description |
|---|---|---|
blur | number (e.g., 0.5) | Blur effect strength |
brightness | number (e.g., 1.2) | Brightness multiplier |
saturate | number (e.g., 1.5) | Saturation multiplier |
<img src="https://gh-heat.anishroy.com/api/username/svg" /><img src="https://gh-heat.anishroy.com/api/username/svg?theme=purple&darkMode=true" /><iframe src="https://gh-heat.anishroy.com/username/canvas?theme=accent" width="800" height="200"></iframe>?theme=purple&darkMode=true?shape=circle&shadow=true&theme=green?mobile=true&theme=accent?transparent=true&theme=blue?showMonthLabels=false&showDayLabels=false&showLegend=false&padding=5?colors=ffe4e6,fecdd3,fb7185,e11d48,9f1239?cellSize=15&cellGap=4&borderWidth=2&radius=6mobile=true for smaller screens (automatically sets smaller cell sizes and gaps)transparent=true with darkMode=true for flexible dark backgroundstheme parameter to match your brandingshape=circle for a modern, rounded look?theme=purple&darkMode=true&shape=circle&shadow=trueshowMonthLabels=false&showDayLabels=false&showLegend=falseAll themes support both light and dark modes via darkMode=true:
green - GitHub green (default)accent - Blue accent themeblue - Blue themepurple - Purple themered - Red themeOr create custom 5-color palettes with the colors parameter (5 hex codes representing intensity levels 0-4)
Built with Next.js 15, TypeScript, and Cheerio. Data fetched from GitHub contribution calendar.
Created by Anish Roy