No deployment needed! This is a 100% compatible Go implementation of the GitHub Profile Trophy project. You can use it as a direct replacement for the original service - just swap the URL and all your existing parameters will work exactly the same.
| Feature | Original Project | This Project |
|---|---|---|
| Deployment | Requires Vercel/Cloud hosting | ✅ Self-hosted, full control |
| API Compatibility | - | ✅ 100% compatible, same parameters |
| Performance | Node.js runtime | ⚡ Go runtime, faster & lighter |
| Rate Limits | Single token | 🔄 Multi-token support |
| Caching | Limited | 💾 Memory + Redis support |
| Maintenance | Depends on service availability | 🛡️ You control the service |
| Cost | May require paid hosting | 💰 Free self-hosting |
- 🎯 100% API Compatible - Use the exact same URL parameters as the original project
- 🚀 No Deployment Required - Self-hosted solution, full control over your data
- ⚡ High Performance - Built with Go for better performance and lower resource usage
- 🔄 Multi-Token Support - Handle higher API rate limits with multiple GitHub tokens
- 💾 Smart Caching - Built-in memory cache + optional Redis support for faster responses
- 🎨 20+ Beautiful Themes - All original themes supported plus more
- 🛡️ Production Ready - Retry mechanisms, error handling, and robust architecture
If you're already using the original GitHub Profile Trophy, simply replace the base URL:
Before (Original):
[](https://github.com/ryo-ma/github-profile-trophy)After (This Project):
[](https://github.com/ryo-ma/github-profile-trophy)All parameters work exactly the same! No changes needed to your existing code.
Of course, we recommend using the GitHub Actions approach instead. Simply update the original request parameters in the Action file:
...
- name: Generate trophy card
uses: soulteary/github-profile-trophy-action@v1.0.0
with:
options: 'username=${{ github.repository_owner }}&theme=onedark)](https://github.com/ryo-ma/github-profile-trophy'
path: .github/assets/trophy.svg
token: ${{ secrets.GITHUB_TOKEN }}- ✅ Trophy card generation with multiple ranks (SSS, SS, S, AAA, AA, A, B, C)
- ✅ 15+ trophy types (Stars, Commits, Followers, Issues, PRs, Repositories, Reviews, etc.)
- ✅ Secret trophies (MultiLanguage, AllSuperRank, AncientAccount, etc.)
- ✅ 20+ themes support
- ✅ Customizable layout (column, row, margins)
- ✅ Filtering by title and rank
- ✅ Caching support (memory + Redis)
- ✅ Multi-token GitHub API support with retry mechanism
All examples below use the same URL parameters as the original project. Just replace the base URL!
[](https://github.com/ryo-ma/github-profile-trophy)[](https://github.com/ryo-ma/github-profile-trophy)[](https://github.com/ryo-ma/github-profile-trophy)[](https://github.com/ryo-ma/github-profile-trophy)[](https://github.com/ryo-ma/github-profile-trophy)💡 Tip: All URL parameters from the original project work identically here. No need to change your existing README code!
You can use github-profile-trophy-action to generate trophy cards in your CI/CD pipeline:
name: Generate Trophy
on:
schedule:
- cron: "0 0 * * *" # Runs once daily at midnight
workflow_dispatch:
jobs:
generate:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Generate trophy card
uses: soulteary/github-profile-trophy-action@v1.0.0
with:
options: 'username=${{ github.repository_owner }}&theme=gruvbox&column=7&margin-w=15&margin-h=15'
path: .github/assets/trophy.svg
token: ${{ secrets.GITHUB_TOKEN }}
- name: Commit trophy card
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .github/assets/trophy.svg
git commit -m "Update trophy card" || exit 0
git pushThen embed the generated image in your README:
# Run with Docker - no installation needed!
docker run -d \
-p 8080:8080 \
-e GITHUB_TOKEN1=your_github_token_here \
--name github-profile-trophy \
soulteary/github-profile-trophy:latestThat's it! Your service is now running at http://localhost:8080 and ready to use with all your existing URLs.
# Clone the repository
git clone https://github.com/soulteary/github-profile-trophy.git
cd github-profile-trophy
# Build
go build -o github-profile-trophy ./cmd/server
# Run (set your GitHub token)
GITHUB_TOKEN1=your_github_token_here ./github-profile-trophygo install github.com/soulteary/github-profile-trophy/cmd/server@latestCreate a .env file or set environment variables:
# GitHub Personal Access Token (required)
GITHUB_TOKEN1=your_github_token_here
# You can configure multiple tokens to increase API rate limits
GITHUB_TOKEN2=your_second_token_here
# Server port (optional, default: 8080)
PORT=8080
# Cache configuration (optional)
ENABLE_REDIS=false
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_USERNAME=
REDIS_PASSWORD=
# Production mode (optional)
NODE_ENV=production⚡ Performance Tip: Configure multiple
GITHUB_TOKEN1,GITHUB_TOKEN2, etc. to handle higher API rate limits automatically.
Choose from 20+ beautiful themes! All themes from the original project are supported.
Click to view all themes
100% compatible with the original project! All parameters work exactly the same.
| Parameter | Description | Default | Example |
|---|---|---|---|
username |
GitHub username (required) | - | ?username=ryo-ma |
theme |
Theme name | "default" |
&theme=onedark |
title |
Filter by trophy titles (comma-separated, use - prefix to exclude) |
All | &title=Stars,Followers |
rank |
Filter by ranks (comma-separated, use - prefix to exclude) |
All | &rank=S,AAA |
column |
Maximum number of columns (use -1 for adaptive) |
8 |
&column=7 |
row |
Maximum number of rows | 3 |
&row=2 |
margin-w |
Horizontal margin between trophies | 0 |
&margin-w=15 |
margin-h |
Vertical margin between trophies | 0 |
&margin-h=15 |
no-bg |
Transparent background | false |
&no-bg=true |
no-frame |
Hide frames | false |
&no-frame=true |
- Stars
- Commits
- Followers
- Issues
- Pull Requests
- Repositories
- Reviews
- MultiLanguage (10+ languages)
- AllSuperRank (all base trophies are S rank or higher)
- LongTimeUser (10+ years)
- AncientUser (before 2010)
- OGUser (before 2008)
- Joined2020 (joined in 2020)
- Organizations (3+ organizations)
- Experience (account duration)
Ranks are: SECRET, SSS, SS, S, AAA, AA, A, B, C, UNKNOWN
.
├── cmd/
│ └── server/ # Server entry point
│ └── main.go
├── internal/
│ ├── api/ # API handlers
│ ├── cards/ # Card rendering logic
│ ├── common/ # Common utilities
│ ├── fetchers/ # Data fetchers (GitHub API)
│ ├── themes/ # Theme system
│ └── trophies/ # Trophy system
├── go.mod
└── README.md
Production Ready! All core features are complete and tested.
- ✅ Project base structure
- ✅ HTTP server (Gin framework)
- ✅ GitHub API integration (GraphQL)
- ✅ Retry mechanism and multi-token support
- ✅ Cache handling (memory + Redis)
- ✅ Theme system (20+ themes)
- ✅ All trophy types (15+ types)
- ✅ Rank calculation
- ✅ All API endpoints
- ✅ 100% API compatibility with original project
Contributions are welcome! If you have any ideas or find issues, please:
- Fork this project
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License.
