Animated GitHub profile stats card — dark bento layout, live stats, contribution morph, and a curtain intro (cat / Spider-Man / Batman).
MIT licensed · credit for AmirHossein Rezaei stays on the card even after you fork.
Everything you need is already in this repo: scripts/generate-cards.mjs builds assets/profile-card.svg, and .github/workflows/update-stats.yml runs that script for you on GitHub.
- Open DinonowDev/github-profile-landing
- Click Fork
- Name it exactly
YourUsername/YourUsername— that makes it your GitHub profile README
Already have a profile README? Copy these into that repo instead:
scripts/generate-cards.mjs.github/workflows/update-stats.ymlassets/(optional starter)
Edit scripts/generate-cards.mjs — set your username and social links:
const USERNAME = process.env.GH_USERNAME || "YourUsername";
const SOCIAL = {
telegram: { handle: "@you", url: "https://t.me/you" },
linkedin: { handle: "linkedin/in/you", url: "https://www.linkedin.com/in/you" },
github: { handle: "github.com/YourUsername", url: "https://github.com/YourUsername" },
};Leave DEVELOPER unchanged — that author credit is intentional.
Add this to your profile README.md:
<p align="center">
<img src="./assets/profile-card.svg" alt="GitHub profile overview" width="900" />
</p>- Settings → Actions → General — allow workflows and let Actions write commits
- Commit your changes and push to
main - Open the Actions tab and run Update Profile Stats once (or wait for the first push)
The workflow runs node scripts/generate-cards.mjs with live GitHub data, writes assets/profile-card.svg, and commits it back. After that it refreshes daily and whenever the generator or workflow changes.
Settings → Secrets and variables → Actions → Variables
| Name | Value |
|---|---|
CARD_THEME |
cat, spiderman, batman, or leave empty for random |
You can also choose a theme when running the workflow manually from the Actions tab.
MIT — see LICENSE.


