{"id":50402006,"url":"https://github.com/santana-org/starmie","last_synced_at":"2026-05-31T00:00:58.942Z","repository":{"id":361325090,"uuid":"1254045968","full_name":"santana-org/starmie","owner":"santana-org","description":"📊 Dynamic SVG widgets for open-source communities","archived":false,"fork":false,"pushed_at":"2026-05-30T04:59:28.000Z","size":67,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T06:22:15.785Z","etag":null,"topics":["actions","community","santana-org","svg"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/santana-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":[]}},"created_at":"2026-05-30T04:43:32.000Z","updated_at":"2026-05-30T05:03:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/santana-org/starmie","commit_stats":null,"previous_names":["santana-org/starmie"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/santana-org/starmie","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santana-org%2Fstarmie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santana-org%2Fstarmie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santana-org%2Fstarmie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santana-org%2Fstarmie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/santana-org","download_url":"https://codeload.github.com/santana-org/starmie/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santana-org%2Fstarmie/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33714033,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["actions","community","santana-org","svg"],"created_at":"2026-05-31T00:00:56.112Z","updated_at":"2026-05-31T00:00:58.935Z","avatar_url":"https://github.com/santana-org.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/santana-org/.github/main/profile/santana-logo.png\" alt=\"Starmie\" width=\"980\" /\u003e\n  \u003cbr/\u003e\n  \u003cbr/\u003e\n\n  \u003cstrong\u003estarmie\u003c/strong\u003e\n\n  \u003cp\u003eGenerate beautiful SVG community widgets for GitHub READMEs — as a CLI tool or GitHub Action.\u003c/p\u003e\n\n  [![license](https://img.shields.io/badge/license-MIT-blue?color=3b82f6\u0026labelColor=1d4ed8)](./LICENSE)\n  [![pnpm](https://img.shields.io/badge/maintained_with-pnpm-f97316?labelColor=ea580c\u0026logo=pnpm\u0026logoColor=white)](https://pnpm.io)\n  [![npm](https://img.shields.io/npm/v/starmie?color=CB3837\u0026labelColor=CB3837\u0026logo=npm\u0026logoColor=white)](https://www.npmjs.com/package/starmie)\n  [![CI](https://github.com/santana-org/starmie/actions/workflows/ci.yml/badge.svg)](https://github.com/santana-org/starmie/actions/workflows/ci.yml)\n\n\u003c/div\u003e\n\n---\n\n## What it does\n\nStarmie fetches live data from the GitHub API and renders it as self-contained SVG files you can embed directly in any Markdown file. No external services, no JavaScript — just static SVGs committed to your repo and served by GitHub's CDN.\n\n**Four widgets out of the box:**\n\n| Widget | Output file | What it shows |\n|---|---|---|\n| Contributors Wall | `community/contributors.svg` | Avatar grid of every contributor |\n| Top Contributors | `community/top-contributors.svg` | Ranked list with commit counts |\n| Sponsors Wall | `community/sponsors.svg` | Avatar grid of GitHub Sponsors |\n| Repo Stats | `community/stats.svg` | Stars, forks, issues, PRs |\n\n---\n\n## 👁️ Live examples\n\nThese SVGs are generated by Starmie itself, running on this repo.\n\n### Contributors\n\n![Contributors](./community/contributors.svg)\n\n### Top Contributors\n\n![Top Contributors](./community/top-contributors.svg)\n\n### Sponsors\n\n![Sponsors](./community/sponsors.svg)\n\n### Stats\n\n![Stats](./community/stats.svg)\n\n---\n\n## 🚀 GitHub Action (recommended)\n\nAdd a workflow and forget about it. Starmie runs on every push to `main`, regenerates the SVGs, and commits them back to your repo automatically.\n\n```yaml\n# .github/workflows/readme-wall.yml\nname: Update community widgets\n\non:\n  push:\n    branches: [main]\n  schedule:\n    - cron: '0 0 * * 0'   # also refresh every Sunday\n  workflow_dispatch:\n\npermissions:\n  contents: write\n\njobs:\n  update:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n\n      - uses: santana-org/starmie@v1\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          theme: dark            # white | dark  (default: white)\n          output-dir: community  # where SVGs are written (default: community)\n```\n\n\u003e This repo uses `uses: ./` instead of `santana-org/starmie@v1` to always run from the local source — see [`.github/workflows/readme-wall.yml`](./.github/workflows/readme-wall.yml).\n\n### Action inputs\n\n| Input | Required | Default | Description |\n|---|---|---|---|\n| `token` | yes | `${{ github.token }}` | GitHub token with repo read access |\n| `repo` | no | current repo | Target repository (`owner/repo`) |\n| `theme` | no | `white` | Visual theme: `white` or `dark` |\n| `output-dir` | no | `community` | Directory where SVGs are written |\n\nWidget selection and fine-grained options are controlled by [`.readme-wall.yml`](#️-configuration).\n\n### Embed the SVGs\n\nAfter the first run, reference the generated files in your README:\n\n```markdown\n## 👥 Contributors\n![Contributors](./community/contributors.svg)\n\n## 🏆 Top Contributors\n![Top Contributors](./community/top-contributors.svg)\n\n## 💖 Sponsors\n![Sponsors](./community/sponsors.svg)\n\n## 📊 Stats\n![Stats](./community/stats.svg)\n```\n\n---\n\n## 🖥️ CLI\n\nInstall globally and run it from your project root:\n\n```sh\npnpm add -g starmie\n# or: npm install -g starmie\n```\n\n```sh\n# Generate all enabled widgets (reads .readme-wall.yml if present)\nstarmie generate --repo owner/repo --theme dark\n\n# Individual widgets\nstarmie contributors --repo owner/repo\nstarmie top          --repo owner/repo\nstarmie sponsors     --repo owner/repo\nstarmie stats        --repo owner/repo\n```\n\n### Global options\n\n| Flag | Description | Default |\n|---|---|---|\n| `--repo \u003cowner/repo\u003e` | GitHub repository | `$GITHUB_REPOSITORY` |\n| `--theme \u003cname\u003e` | Visual theme: `white`, `dark` | `white` |\n| `--output \u003cdir\u003e` | Output directory | `community` |\n| `--token \u003ctoken\u003e` | GitHub token | `$GITHUB_TOKEN` |\n\nA `GITHUB_TOKEN` environment variable is required for API access (unauthenticated requests are rate-limited to 60/hour).\n\n---\n\n## ⚙️ Configuration\n\nCreate `.readme-wall.yml` in your project root to control which widgets are generated and how they look. All fields are optional — the file itself is optional.\n\n```yaml\n# .readme-wall.yml\ntheme: dark          # white | dark\n\noutput: community    # output directory\n\ncontributors:\n  enabled: true\n  max: 24            # maximum avatars to show\n  showCount: true    # show total contributor count in header\n\ntopContributors:\n  enabled: true\n  max: 10            # number of contributors to rank\n\nsponsors:\n  enabled: true\n\nstats:\n  enabled: true\n```\n\n### Defaults\n\n| Key | Default |\n|---|---|\n| `theme` | `white` |\n| `output` | `community` |\n| `contributors.enabled` | `true` |\n| `contributors.max` | `24` |\n| `contributors.showCount` | `true` |\n| `topContributors.enabled` | `true` |\n| `topContributors.max` | `10` |\n| `sponsors.enabled` | `true` |\n| `stats.enabled` | `true` |\n\n---\n\n## 🎨 Themes\n\n| Theme | Description |\n|---|---|\n| `white` | Light background, clean lines, neutral palette |\n| `dark` | Dark surface, high-contrast text, suited for dark-mode READMEs |\n\n---\n\n## 🛠️ Development\n\n```sh\n# Install dependencies\npnpm install\n\n# Build\npnpm build\n\n# Run CLI locally (no build needed)\npnpm dev generate --repo owner/repo\n\n# Run the GitHub Action entrypoint locally\npnpm action:dev\n\n# Type check\npnpm typecheck\n```\n\n### CI\n\nEvery push to `main` and every pull request runs the [`ci.yml`](./.github/workflows/ci.yml) workflow: type check + build.\n\n### Releasing\n\nPush a version tag to trigger the [`release.yml`](./.github/workflows/release.yml) workflow, which:\n\n1. Builds the project\n2. Publishes the package to npm (`NPM_TOKEN` secret required)\n3. Creates a GitHub Release with a generated changelog and a tarball of the build artifacts\n\n```sh\ngit tag v1.2.0\ngit push origin v1.2.0\n```\n\n---\n\n## 🏗️ Built with\n\n[TypeScript](https://www.typescriptlang.org) · [pnpm](https://pnpm.io) · [@santana-org/cli](https://www.npmjs.com/package/@santana-org/cli) · [@santana-org/logger](https://www.npmjs.com/package/@santana-org/logger) · [js-yaml](https://github.com/nodeca/js-yaml)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsantana-org%2Fstarmie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsantana-org%2Fstarmie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsantana-org%2Fstarmie/lists"}