{"id":46204692,"url":"https://github.com/dan-online/edge-readme-stats","last_synced_at":"2026-03-03T05:49:32.278Z","repository":{"id":335330333,"uuid":"1142524988","full_name":"dan-online/edge-readme-stats","owner":"dan-online","description":"Fast, edge-native GitHub stats cards for your README profile","archived":false,"fork":false,"pushed_at":"2026-03-01T00:50:07.000Z","size":334,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-01T04:02:01.709Z","etag":null,"topics":["bun","cloudflare-workers","deno","docker","github-api","github-readme","github-stats","hono","nodejs","readme-profile","svg-generator","vercel"],"latest_commit_sha":null,"homepage":"https://edge-readme-stats.dancodes.online/generator","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dan-online.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["dan-online"]}},"created_at":"2026-01-26T14:25:01.000Z","updated_at":"2026-03-01T00:50:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dan-online/edge-readme-stats","commit_stats":null,"previous_names":["dan-online/edge-readme-stats"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dan-online/edge-readme-stats","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-online%2Fedge-readme-stats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-online%2Fedge-readme-stats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-online%2Fedge-readme-stats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-online%2Fedge-readme-stats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dan-online","download_url":"https://codeload.github.com/dan-online/edge-readme-stats/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-online%2Fedge-readme-stats/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30033529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T05:09:26.876Z","status":"ssl_error","status_checked_at":"2026-03-03T05:09:23.944Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bun","cloudflare-workers","deno","docker","github-api","github-readme","github-stats","hono","nodejs","readme-profile","svg-generator","vercel"],"created_at":"2026-03-03T05:49:32.208Z","updated_at":"2026-03-03T05:49:32.266Z","avatar_url":"https://github.com/dan-online.png","language":"TypeScript","funding_links":["https://github.com/sponsors/dan-online"],"categories":[],"sub_categories":[],"readme":"# edge-readme-stats\n\n**Fast, edge-native GitHub stats cards for your README**\n\nGenerate dynamic GitHub statistics cards that run anywhere - Cloudflare Workers, Vercel Edge, Deno Deploy, Bun, or self-hosted with Docker. Inspired by [github-readme-stats](https://github.com/anuraghazra/github-readme-stats), rebuilt for performance and portability.\n\n## Features\n\n- 🚀 **Edge-first** - Deploy close to requests for fast response times\n- 🌍 **Run anywhere** - Node.js, Bun, Deno, Cloudflare Workers, Vercel, Docker\n- 🎨 **11 themes** - Including auto dark/light mode, plus custom colors\n- 📦 **Tiny footprint** - Minimal dependencies, fast cold starts\n- 🔒 **Self-host friendly** - Use your own GitHub token for higher rate limits\n\n## Examples\n\n### Stats Card\n\n![GitHub Stats](https://edge-readme-stats.dancodes.online/stats?username=dan-online\u0026size=md)\n![GitHub Stats Radical](https://edge-readme-stats.dancodes.online/stats?username=dan-online\u0026theme=radical\u0026size=md)\n![GitHub Stats GruvBox](https://edge-readme-stats.dancodes.online/stats?username=dan-online\u0026theme=gruvbox\u0026size=md)\n![GitHub Stats Custom](https://edge-readme-stats.dancodes.online/stats?username=dan-online\u0026bg_color=0d1117\u0026title_color=58a6ff\u0026text_color=c9d1d9\u0026icon_color=f0883e\u0026border_color=30363d\u0026size=md)\n\n### Top Languages\n\n![Top Languages](https://edge-readme-stats.dancodes.online/langs?username=dan-online\u0026theme=tokyonight)\n![Top Languages Dracula](https://edge-readme-stats.dancodes.online/langs?username=dan-online\u0026theme=dracula\u0026langs_count=3)\n![Top Languages Donut](https://edge-readme-stats.dancodes.online/langs?username=dan-online\u0026theme=catppuccin\u0026layout=donut)\n![Top Languages Donut](https://edge-readme-stats.dancodes.online/langs?username=dan-online\u0026theme=onedark\u0026layout=donut\u0026langs_count=4)\n\n### Contribution Heatmap\n\n![Heatmap Grid](https://edge-readme-stats.dancodes.online/heatmap?username=dan-online\u0026theme=nord)\n![Heatmap Compact](https://edge-readme-stats.dancodes.online/heatmap?username=dan-online\u0026theme=gruvbox\u0026layout=compact\u0026size=md)\n![Heatmap Compact](https://edge-readme-stats.dancodes.online/heatmap?username=dan-online\u0026theme=radical\u0026layout=compact\u0026size=md)\n![Heatmap Custom](https://edge-readme-stats.dancodes.online/heatmap?username=dan-online\u0026time_range=90\u0026theme=monokai\u0026size=md)\n\n## Quick Start\n\n### Use the Public Instance\n\n**[Try the Card Generator](https://edge-readme-stats.dancodes.online/generator)** to build your card visually!\n\nOr use these URLs directly:\n\n```md\n![GitHub Stats](https://edge-readme-stats.dancodes.online/stats?username=YOUR_USERNAME)\n![Top Languages](https://edge-readme-stats.dancodes.online/langs?username=YOUR_USERNAME)\n![Contribution Heatmap](https://edge-readme-stats.dancodes.online/heatmap?username=YOUR_USERNAME)\n```\n\n### Self-Hosting\n\n#### Environment Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `GITHUB_TOKEN` | Recommended | GitHub PAT for higher rate limits |\n| `PORT` | No | Server port (default: 3000) |\n\n#### Docker\n\n```bash\ndocker run -p 3000:3000 \\\n  -e GITHUB_TOKEN=ghp_your_token \\\n  ghcr.io/dan-online/edge-readme-stats\n```\n\n#### Cloudflare Workers\n\n1. Clone the repo\n2. Set secrets: `npx wrangler secret put GITHUB_TOKEN`\n3. Deploy: `npx wrangler deploy`\n\n#### Vercel\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/dan-online/edge-readme-stats)\n\n## Cards\n\n### Stats Card\n\n```md\n![Stats](https://edge-readme-stats.dancodes.online/stats?username=dan-online)\n```\n\n**Parameters:**\n\n| Parameter | Default | Description |\n|-----------|---------|-------------|\n| `username` | required | GitHub username |\n| `theme` | `github` | Theme name (see [Themes](#themes)) |\n| `lang` | auto | Language code (see [Internationalization](#internationalization)) |\n| `size` | `lg` | Card size: `sm` (50%), `md` (75%), `lg` (100%), `xl` (125%) |\n| `icons` | `true` | Show icons |\n| `rank` | `true` | Show rank circle |\n| `stars` | `true` | Show stars count |\n| `commits` | `true` | Show commits count |\n| `prs` | `true` | Show pull requests count |\n| `issues` | `true` | Show issues count |\n| `contribs` | `true` | Show contributed to count |\n| `border` | `true` | Show card border |\n| `animations` | `true` | Enable CSS animations |\n\n### Top Languages Card\n\n```md\n![Languages](https://edge-readme-stats.dancodes.online/langs?username=dan-online)\n```\n\n**Parameters:**\n\n| Parameter | Default | Description |\n|-----------|---------|-------------|\n| `username` | required | GitHub username |\n| `theme` | `github` | Theme name (see [Themes](#themes)) |\n| `lang` | auto | Language code (see [Internationalization](#internationalization)) |\n| `size` | `lg` | Card size: `sm` (50%), `md` (75%), `lg` (100%), `xl` (125%) |\n| `hide` | - | Hide languages (comma-separated) |\n| `langs_count` | `6` | Number of languages (max 6) |\n| `layout` | `compact` | Layout: `compact`, `donut` |\n| `border` | `true` | Show card border |\n| `animations` | `true` | Enable CSS animations |\n\n### Contribution Heatmap Card\n\n```md\n![Heatmap](https://edge-readme-stats.dancodes.online/heatmap?username=dan-online)\n```\n\n**Parameters:**\n\n| Parameter | Default | Description |\n|-----------|---------|-------------|\n| `username` | required | GitHub username |\n| `theme` | `github` | Theme name (see [Themes](#themes)) |\n| `lang` | auto | Language code (see [Internationalization](#internationalization)) |\n| `size` | `lg` | Card size: `sm` (50%), `md` (75%), `lg` (100%), `xl` (125%) |\n| `layout` | `grid` | Layout: `grid`, `compact` |\n| `time_range` | `365` | Number of days to show (1-365) |\n| `total` | `true` | Show total contributions |\n| `current_streak` | `true` | Show current streak |\n| `longest_streak` | `true` | Show longest streak |\n| `border` | `true` | Show card border |\n| `animations` | `true` | Enable CSS animations |\n\n## Card Generator\n\nThe interactive **[Card Generator](https://edge-readme-stats.dancodes.online/generator)** lets you build and customize your cards visually:\n\n- **Live Preview** - See your card update in real-time as you adjust settings\n- **Card Type Tabs** - Switch between Stats, Languages, and Heatmap cards\n- **Theme Selection** - Browse all 11 built-in themes\n- **Custom Colors** - Pick colors with color pickers or enter hex values\n- **Language Selection** - Preview cards in different languages\n- **One-Click Copy** - Copy markdown or URL directly to clipboard\n- **Submit Custom Themes** - Create a GitHub issue with your custom theme colors\n\nThe generator creates a preview using sample data so you can see how your card will look before adding your username.\n\n## Themes\n\nAvailable themes: `github` (default), `light`, `dark`, `radical`, `tokyonight`, `dracula`, `gruvbox`, `nord`, `catppuccin`, `onedark`, `monokai`\n\n### Auto Dark/Light Mode\n\nThe default `github` theme automatically adapts to the viewer's system preference using CSS `prefers-color-scheme` media queries:\n\n- **Dark mode** - Uses GitHub's dark theme colors\n- **Light mode** - Uses GitHub's light theme colors\n\nThis means your card will match GitHub's interface whether the viewer is using dark or light mode. No configuration needed - it just works!\n\nIf you prefer a fixed theme, use `theme=light` or `theme=dark` for explicit control.\n\n### Custom Colors\n\nOverride any theme with custom colors:\n\n```\n?theme=dark\u0026title_color=ff0000\u0026bg_color=000000\n```\n\n| Parameter | Description |\n|-----------|-------------|\n| `bg_color` | Background color |\n| `title_color` | Title color |\n| `text_color` | Text color |\n| `icon_color` | Icon color |\n| `border_color` | Border color |\n\n## Internationalization\n\nCards support multiple languages via the `lang` parameter:\n\n```\n?lang=zh\n```\n\n| Code | Language | Status |\n|------|----------|--------|\n| `en` | English | Native |\n| `zh` | Chinese | Machine translated |\n| `es` | Spanish | Machine translated |\n| `pt` | Portuguese | Machine translated |\n\nThe language is also auto-detected from your browser's `Accept-Language` header.\n\n**Want to contribute translations?** We'd love help improving machine-translated locales or adding new languages. Edit [`core/src/lib/i18n.ts`](core/src/lib/i18n.ts) and submit a PR!\n\n## Development\n\n```bash\n# Install dependencies\nyarn install\n\n# Run dev server (Node.js)\nyarn dev\n\n# Run tests\nyarn test\n\n# Lint\nyarn lint\n```\n\n## API Documentation\n\n| Endpoint | Description |\n|----------|-------------|\n| `GET /` | Returns version and repo info |\n| `GET /stats` | Generate stats card SVG |\n| `GET /langs` | Generate languages card SVG |\n| `GET /heatmap` | Generate contribution heatmap card SVG |\n| `GET /generator` | Interactive card builder UI |\n| `GET /docs` | Swagger UI |\n| `GET /openapi` | OpenAPI spec (JSON) |\n\n## Why edge-readme-stats?\n\nThe original [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) by Anurag Hazra is a great project that inspired this one. It just didn't quite suit my needs, so I built this alternative with a focus on:\n\n- **Edge deployment** - Native support for Cloudflare Workers, Deno Deploy, and other edge runtimes\n- **Multi-platform** - Run on Vercel, Cloudflare, Deno, Bun, Node.js, or Docker\n- **TypeScript** - Full type safety with Valibot schema validation\n- **Modern tooling** - Hono framework, JSX/TSX for SVG templating\n- **Easy self-hosting** - Docker support and simple environment config\n\nIf the original works well for you, use it! This is just an alternative for those who want edge deployment or different tech choices.\n\n## Attribution\n\nThis project is inspired by [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) by Anurag Hazra.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-online%2Fedge-readme-stats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdan-online%2Fedge-readme-stats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-online%2Fedge-readme-stats/lists"}