Generate customizable SVG cards from a GreasyFork user's public statistics and embed them in GitHub READMEs, project pages, documentation, or anywhere SVG images are supported.
The easiest way to create your card is to use the interactive generator:
Enter a GreasyFork profile ID or URL, customize the theme and language, preview the result instantly, then copy the generated URL, Markdown, or HTML code.
- Interactive card generator
- Shared SVG renderer for the live preview and API
- Compact and grid layouts
- Visual theme swatches
- SVG downloads and shareable builder settings
- Ready-to-copy URL, Markdown, and HTML
- GreasyFork profile ID or URL support
- Public GreasyFork statistics
- Automatic username detection
- Total installs and daily installs
- Script and rating statistics
- Lightweight SVG output
- Multiple built-in themes
- Multiple languages
- No authentication required
- Cached responses for reliable performance
For manual integration, replace YOUR_USER_ID with the numeric ID from your GreasyFork profile URL.
<img
src="https://greasyfork-stats.drewx.dev/api/stats?user=YOUR_USER_ID&theme=github_dark&lang=en"
alt="GreasyFork Stats"
/>| Parameter | Description | Default | Example |
|---|---|---|---|
user |
Numeric GreasyFork user ID | Required | 1259433 |
theme |
Card theme | default |
github_dark |
layout |
compact or grid |
compact |
grid |
lang |
Card language | en |
fr |
hide_title |
Hide the card title | false |
true |
hide_border |
Hide the card border | false |
true |
Boolean parameters accept true, false, 1, or 0.
Available themes:
default
github_dark
dracula
nord
gruvbox
tokyonight
catppuccin
monokai
cyberpunk
solarized_dark
Example:
Available languages:
en
fr
es
de
Example:
Statistics are retrieved from GreasyFork's public API. The preview fetches data in the browser, while the embedded SVG is generated by the server. Both use the same aggregation and rendering code. Existing profiles without public scripts display zero statistics.
Downloaded SVGs are snapshots; use the image URL, Markdown, or HTML for automatically updating cards. Successful cards are cached to reduce load, improve reliability, and avoid unnecessary requests to GreasyFork.
Successful cards are cached for six hours and may be served stale while refreshing. GitHub may also cache embedded images, so the preview and an embedded card can show different values temporarily.
The positive-review percentage is the number of positive reviews divided by all positive, neutral, and negative reviews. The card also shows the number of reviews; profiles without reviews display an explicit empty state.
Requires Node.js 24.8 or newer within the Node.js 24 release line.
npm ci
npm run devOpen http://127.0.0.1:3000. The local Node.js server serves the interface and the real /api/stats handler, without requiring Vercel login or project linking. Refresh the browser after editing; server modules restart automatically. Use PORT=3001 npm run dev if port 3000 is busy. Local responses are not cached.
The frontend uses native JavaScript modules with no build step. assets/app.js and assets/app.css contain the interface; lib/card.js, lib/themes.js, lib/i18n.js, and lib/stats.js are shared modules. api/stats.js serves the dynamic SVG on the same origin.
npm test
npm run lint
npm run format:checkTo share a configuration, use Copy settings link in the generator. Its query parameters override saved settings when opened. Download SVG saves the current preview as a static image.
Licensed under the MIT License.