[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2927":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":36,"readmeContent":37,"aiSummary":38,"trendingCount":15,"starSnapshotCount":15,"syncStatus":39,"lastSyncTime":40,"discoverSource":41},2927,"shieldcn","jal-co\u002Fshieldcn","jal-co","Beautiful README badges, inspired by shields.io and styled like shadcn\u002Fui.","https:\u002F\u002Fshieldcn.dev",null,"TypeScript",370,21,107,0,31,56,243,93,94.03,"MIT License",false,"main",[25,26,27,28,29,30,31,32,33,34,35],"agent-skills","badges","badges-markdown","markdown","open-source","readme","readme-badges","shadcn-ui","shields","shields-io","shields-io-badges","2026-06-12 04:00:16","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fshieldcn.dev\">\n    \u003Cimg src=\".\u002Fpackages\u002Fweb\u002Fbrand\u002Frepo-header.png\" alt=\"shieldcn\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  Beautiful README badges.\u003Cbr \u002F>\n  A \u003Ca href=\"https:\u002F\u002Fshields.io\">shields.io\u003C\u002Fa> alternative styled as \u003Ca href=\"https:\u002F\u002Fui.shadcn.com\">shadcn\u002Fui\u003C\u002Fa> buttons. Never paywalled.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fshieldcn.dev\">Homepage\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fshieldcn.dev\u002Fdocs\">Docs\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fshieldcn.dev\u002Fdocs\u002Fcli\">CLI\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fshieldcn.dev\u002Fdocs\u002Fapi-reference\">API Reference\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fx.com\u002Fjalcowastaken\">𝕏\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fshieldcn.dev\u002Fgroup\u002Fgithub\u002Fstars\u002Fjal-co\u002Fshieldcn%2Bgithub\u002Flicense\u002Fjal-co\u002Fshieldcn%2Bgithub\u002Fcontributors\u002Fjal-co\u002Fshieldcn%2Bgithub\u002Flast-commit\u002Fjal-co\u002Fshieldcn.svg?variant=branded\" alt=\"shieldcn stats\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fshieldcn.dev\u002Fdocs\u002Fself-hosting\">\u003Cimg src=\"https:\u002F\u002Fshieldcn.dev\u002Fbadge\u002Fhost%20with-docker-2496ED.svg?variant=branded&logo=docker\" alt=\"host with docker\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fopenpanel.dev?ref=justinlevine.me\">\u003Cimg src=\"https:\u002F\u002Fshieldcn.dev\u002Fbadge\u002Fanalytics%20by-openpanel.svg?variant=branded&logo=openpanel\" alt=\"analytics by openpanel\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fshadcncraft.com?utm_source=shieldcn.dev\">\u003Cimg src=\"https:\u002F\u002Fshieldcn.dev\u002Fbadge\u002Fbuilt%20with-shadcncraft-171717.svg?logo=shadcncraft&logoColor=fff&variant=branded\" alt=\"built with shadcncraft\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.shadcnblocks.com?utm_source=shieldcn.dev\">\u003Cimg src=\"https:\u002F\u002Fshieldcn.dev\u002Fbadge\u002Fbuilt%20with-shadcnblocks-000000.svg?logo=shadcnblocks&logoColor=fff&variant=branded\" alt=\"built with shadcnblocks\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n## About\n\nshieldcn is an open-source badge service by [Justin Levine](https:\u002F\u002Fjustinlevine.me). Every badge is free, every endpoint is public, and that's not changing.\n\nBadges are rendered as actual [shadcn\u002Fui](https:\u002F\u002Fui.shadcn.com) Button components via [Satori](https:\u002F\u002Fgithub.com\u002Fvercel\u002Fsatori) — same font (Inter), same border-radius, same padding, same color tokens per variant and size. Not \"inspired by\" — the real thing, as SVG.\n\nBuilt with [jal-co\u002Fui](https:\u002F\u002Fui.justinlevine.me) components.\n\n## CLI\n\nGenerate badges from your terminal:\n\n```bash\n# Scan current repo and generate badge markdown\nnpx shieldcn-cli\n\n# Scan a GitHub repo\nnpx shieldcn-cli vercel\u002Fnext.js --variant branded\n\n# Inject badges into README\nnpx shieldcn-cli --inject\n\n# Migrate shields.io URLs to shieldcn\nnpx shieldcn-cli migrate\n```\n\nSee the [CLI docs](https:\u002F\u002Fshieldcn.dev\u002Fdocs\u002Fcli) for full usage.\n\n## Usage\n\n```md\n![npm](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg)\n![stars](https:\u002F\u002Fshieldcn.dev\u002Fgithub\u002Fstars\u002Fvercel\u002Fnext.js.svg)\n![CI](https:\u002F\u002Fshieldcn.dev\u002Fgithub\u002Fci\u002Fjal-co\u002Fui.svg)\n![license](https:\u002F\u002Fshieldcn.dev\u002Fgithub\u002Flicense\u002Fvercel\u002Fnext.js.svg)\n![discord](https:\u002F\u002Fshieldcn.dev\u002Fdiscord\u002F1316199667142496307.svg)\n```\n\n### Badge groups\n\nCombine multiple badges into a single joined image — like a [shadcn ButtonGroup](https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Fcomponents\u002Fradix\u002Fbutton-group):\n\n\u003Cp>\n  \u003Cimg src=\"https:\u002F\u002Fshieldcn.dev\u002Fgroup\u002Fnpm\u002Freact%2Bgithub\u002Fstars\u002Fvercel\u002Fnext.js%2Bgithub\u002Flicense\u002Fvercel\u002Fnext.js.svg?variant=branded\" alt=\"badge group\" \u002F>\n\u003C\u002Fp>\n\n```md\n![group](https:\u002F\u002Fshieldcn.dev\u002Fgroup\u002Fnpm\u002Freact+github\u002Fstars\u002Fvercel\u002Fnext.js+github\u002Flicense\u002Fvercel\u002Fnext.js.svg?variant=branded)\n```\n\nJoin any badge paths with `+` under `\u002Fgroup\u002F`. Query params apply to all segments. See the [Badge Group docs](https:\u002F\u002Fshieldcn.dev\u002Fdocs\u002Fbadges\u002Fgroup).\n\n## Supported providers\n\nSee the [docs](https:\u002F\u002Fshieldcn.dev\u002Fdocs) for full endpoint details, interactive sandboxes, and copy-paste examples.\n\n### Package registries\n\n| Provider | Badges | Endpoint |\n|----------|--------|----------|\n| **npm** | version, downloads, license, node, types, dependents | `\u002Fnpm\u002F{package}` |\n| **PyPI** | version, downloads, license, python version | `\u002Fpypi\u002F{package}` |\n| **Crates.io** | version, downloads, license | `\u002Fcrates\u002F{crate}` |\n| **Docker Hub** | pulls, stars, version, image size | `\u002Fdocker\u002Fpulls\u002F{image}` |\n| **Packagist** | version, downloads, license | `\u002Fpackagist\u002Fv\u002F{vendor}\u002F{package}` |\n| **RubyGems** | version, downloads, license | `\u002Frubygems\u002F{gem}` |\n| **NuGet** | version, downloads | `\u002Fnuget\u002F{package}` |\n| **Pub.dev** | version, likes, points, popularity | `\u002Fpub\u002F{package}` |\n| **Homebrew** | version (formula + cask), installs, downloads | `\u002Fhomebrew\u002F{formula}` |\n| **Maven Central** | version | `\u002Fmaven\u002F{groupId}\u002F{artifactId}` |\n| **CocoaPods** | version | `\u002Fcocoapods\u002F{pod}` |\n| **JSR** | version, score | `\u002Fjsr\u002F{@scope}\u002F{name}` |\n| **Bundlephobia** | min size, minzip size, tree-shaking | `\u002Fbundlephobia\u002Fminzip\u002F{package}` |\n| **Conda** | version, downloads, platform | `\u002Fconda\u002Fv\u002F{channel}\u002F{package}` |\n| **jsDelivr** | CDN hits, rank | `\u002Fjsdelivr\u002Fhits\u002Fnpm\u002F{package}` |\n| **Chocolatey** | version, downloads | `\u002Fchocolatey\u002Fv\u002F{package}` |\n| **Snapcraft** | version | `\u002Fsnapcraft\u002Fv\u002F{snap}` |\n\n### Code platforms\n\n| Provider | Badges | Endpoint |\n|----------|--------|----------|\n| **GitHub** | stars, forks, watchers, license, release, CI, checks, issues, PRs, milestones, commits, downloads (all\u002Fspecific asset, all\u002Flatest\u002Ftag), dependabot, and more | `\u002Fgithub\u002F{owner}\u002F{repo}\u002F{topic}` |\n| **GitLab** | stars, forks, issues, pipeline, license, release, contributors | `\u002Fgitlab\u002F{owner}\u002F{repo}\u002F{topic}` |\n| **Codecov** | coverage percentage (color-coded) | `\u002Fcodecov\u002F{service}\u002F{owner}\u002F{repo}` |\n| **Coveralls** | coverage percentage (color-coded) | `\u002Fcoveralls\u002F{service}\u002F{owner}\u002F{repo}` |\n| **SonarCloud** | quality gate, bugs, vulnerabilities, coverage, maintainability, reliability, security | `\u002Fsonar\u002F{topic}\u002F{component}` |\n| **VS Code Marketplace** | installs, rating, version | `\u002Fvscode\u002Finstalls\u002F{publisher}\u002F{extension}` |\n| **Open VSX** | version, downloads, rating | `\u002Fopenvsx\u002Fv\u002F{namespace}\u002F{extension}` |\n\n### App stores\n\n| Provider | Badges | Endpoint |\n|----------|--------|----------|\n| **Chrome Web Store** | version, users, rating | `\u002Fchrome\u002Fv\u002F{extensionId}` |\n| **Mozilla Add-ons** | version, users, rating, downloads | `\u002Famo\u002Fv\u002F{slug}` |\n| **Flathub** | version, downloads | `\u002Fflathub\u002Fv\u002F{appId}` |\n| **F-Droid** | version | `\u002Ffdroid\u002Fv\u002F{appId}` |\n\n### Social & Community\n\n| Provider | Badges | Endpoint |\n|----------|--------|----------|\n| **Discord** | online count, members | `\u002Fdiscord\u002F{serverId}` |\n| **Reddit** | karma, subscribers | `\u002Freddit\u002Fsubscribers\u002Fr\u002F{subreddit}` |\n| **Bluesky** | followers, following, posts | `\u002Fbluesky\u002F{handle}` |\n| **X \u002F Twitter** | follow CTA, mention CTA | `\u002Fx\u002Ffollow\u002F{username}` |\n| **YouTube** | subscribers, channel views, video views, likes, comments | `\u002Fyoutube\u002Fsubscribers\u002F{channelId}` |\n| **Mastodon** | followers, following, posts | `\u002Fmastodon\u002Ffollowers\u002F{instance}\u002F{acct}` |\n| **Lemmy** | subscribers, posts, comments | `\u002Flemmy\u002Fsubscribers\u002F{instance}\u002F{community}` |\n| **Hacker News** | karma | `\u002Fhackernews\u002F{userId}` |\n| **Twitch** | live status, followers | `\u002Ftwitch\u002Fstatus\u002F{login}` |\n| **Discourse** | topics, posts, users, likes | `\u002Fdiscourse\u002Ftopics\u002F{server}` |\n| **Matrix** | room members | `\u002Fmatrix\u002Fmembers\u002F{roomAlias}` |\n| **Stack Exchange** | tag questions, user reputation | `\u002Fstackexchange\u002Ftag\u002F{tag}` |\n\n### Funding & Tools\n\n| Provider | Badges | Endpoint |\n|----------|--------|----------|\n| **Open Collective** | backers, sponsors, contributors, balance, budget | `\u002Fopencollective\u002Fbackers\u002F{slug}` |\n| **Liberapay** | receiving, patrons, goal | `\u002Fliberapay\u002Freceiving\u002F{username}` |\n| **WakaTime** | coding time | `\u002Fwakatime\u002F{username}` |\n| **Weblate** | translation %, language count | `\u002Fweblate\u002Ftranslation\u002F{server}\u002F{project}\u002F{component}` |\n| **Modrinth** | downloads, followers, version, game versions | `\u002Fmodrinth\u002Fdownloads\u002F{slug}` |\n| **Tokscale** | tokens, cost, rank, active days | `\u002Ftokscale\u002F{username}` |\n\n### Custom badges\n\n| Type | Description | Endpoint |\n|------|-------------|----------|\n| **Badge Group** | Multiple badges joined in one image | `\u002Fgroup\u002F{badge1}+{badge2}+{badge3}` |\n| **Static** | Custom label\u002Fmessage\u002Fcolor | `\u002Fbadge\u002F{label}-{message}-{color}` |\n| **Dynamic JSON** | Fetch any JSON API | `\u002Fbadge\u002Fdynamic\u002Fjson?url=...&query=...` |\n| **HTTPS Endpoint** | Proxy any JSON endpoint | `\u002Fhttps\u002F{hostname}\u002F{path}` |\n| **Memo** | User-stored badges (PUT API) | `\u002Fmemo\u002F{key}` |\n\n## Variants & sizes\n\nEvery badge supports shadcn Button variants and sizes:\n\n```md\n![default](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg)\n![secondary](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg?variant=secondary)\n![outline](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg?variant=outline)\n![ghost](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg?variant=ghost)\n![destructive](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg?variant=destructive)\n![branded](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg?variant=branded)\n\n![xs](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg?size=xs)\n![sm](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg?size=sm)\n![default](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg?size=default)\n![lg](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Freact.svg?size=lg)\n```\n\n## Icons\n\nThree icon libraries (40,000+ icons) plus custom SVG upload:\n\n- **[Simple Icons](https:\u002F\u002Fsimpleicons.org)** — `?logo=react`\n- **[React Icons](https:\u002F\u002Freact-icons.github.io\u002Freact-icons\u002F)** — `?logo=ri:GoStarFill`\n- **[React Icons](https:\u002F\u002Freact-icons.github.io\u002Freact-icons\u002F)** — `?logo=ri:FaReact`\n- **Custom SVG** — `?logo=data:image\u002Fsvg+xml;base64,...` — upload any SVG icon via the Badge Builder or encode it yourself\n\n## Response formats\n\n- **`.png`** — PNG image (recommended for GitHub READMEs and maximum compatibility)\n- **`.svg`** — SVG image (scalable, smaller file size)\n- **`.json`** — raw badge data\n- **`\u002Fshields.json`** — shields.io-compatible endpoint\n\nBoth `.png` and `.svg` work everywhere GitHub renders images. Just swap the extension.\n\n## Design principles\n\n- **shadcn buttons, not shields.io rectangles** — badges are rendered as actual shadcn Button components with real Inter font outlines via Satori\n- **Everything configurable** — variant, size, mode, colors, icons, opacity, split, dot — but sensible defaults so you don't have to configure anything\n- **Shields.io compatible** — same URL patterns for static\u002Fdynamic badges, same text encoding, shields.io JSON endpoint support\n- **Open source, never paywalled** — every badge type, every variant, every icon source is free\n\n## Agent skill\n\nInstall the shieldcn skill to let AI coding agents (Claude Code, Cursor, Codex, and [40+ more](https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fskills#supported-agents)) add badges to your projects:\n\n```bash\nnpx skills add jal-co\u002Fshieldcn\n```\n\nOnce installed, ask your agent to _\"add shieldcn badges to the README\"_ — it knows all providers, URL patterns, and query parameters.\n\nLearn more in the [skill docs](https:\u002F\u002Fshieldcn.dev\u002Fdocs\u002Fskill).\n\n## Self-Hosting\n\nRun your own badge engine with Docker:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fjal-co\u002Fshieldcn.git\ncd shieldcn\ndocker compose -f packages\u002Fengine\u002Fdocker-compose.yml up -d\n\n# Test it\ncurl http:\u002F\u002Flocalhost:3000\u002Fbadge\u002Fself--hosted-green.svg\n```\n\nOr pull the pre-built image:\n\n```bash\ndocker pull ghcr.io\u002Fjal-co\u002Fshieldcn\u002Fengine:latest\n```\n\nSee the [Self-Hosting Guide](https:\u002F\u002Fshieldcn.dev\u002Fdocs\u002Fself-hosting) for full setup details.\n\n## Local Development\n\n```bash\npnpm install             # install all workspace deps\npnpm dev:web             # start the web site\npnpm dev:engine          # start the self-hosted engine\npnpm build:web           # build the web site\npnpm build:engine        # build the engine\n```\n\nThe repo is a Turborepo monorepo with three packages:\n- `packages\u002Fcore` — shared badge engine library\n- `packages\u002Fweb` — marketing site (Vercel)\n- `packages\u002Fengine` — self-hosted Docker image\n\n\n## Token pool\n\nshieldcn uses a [token pool](https:\u002F\u002Fshieldcn.dev\u002Ftoken-pool) (inspired by [shields.io](https:\u002F\u002Fshields.io\u002Fblog\u002F2024-11-14-how-shields-io-uses-the-github-api)) to distribute GitHub API requests across many tokens. You can help by authorizing the OAuth app — read-only, zero scopes, revocable anytime.\n\n## Credits\n\n- **[shields.io](https:\u002F\u002Fshields.io)** — the original badge service. Inspiration for URL patterns, static badge format, and the token pool system.\n- **[badgen.net](https:\u002F\u002Fbadgen.net)** — inspiration for many badge types and endpoint structures, especially the GitHub badge coverage.\n- **[shadcn\u002Fui](https:\u002F\u002Fui.shadcn.com)** — the design system these badges are built on.\n- **[Satori](https:\u002F\u002Fgithub.com\u002Fvercel\u002Fsatori)** — Vercel's JSX-to-SVG engine that makes rendering React components as badge images possible.\n- **[jal-co\u002Fui](https:\u002F\u002Fui.justinlevine.me)** — the component library powering the docs site.\n- **[@k33bs](https:\u002F\u002Fgithub.com\u002Fk33bs)** — creator of [shieldcngen](https:\u002F\u002Fgithub.com\u002Fk33bs\u002Fshieldcngen), the badge generator tool powering the [`\u002Fgen`](https:\u002F\u002Fshieldcn.dev\u002Fgen) page.\n\n## Contributing\n\nPRs welcome. See [AGENTS.md](.\u002FAGENTS.md) for architecture overview.\n\nTo add shadcn components: `cd packages\u002Fweb && pnpm dlx shadcn@latest add {component}`\n\n## License\n\n[MIT](.\u002FLICENSE)\n","shieldcn 是一个用于生成美观 README 徽章的服务，灵感来源于 shields.io 并采用 shadcn\u002Fui 的样式。项目核心功能包括提供免费且公开的徽章端点，徽章以 shadcn\u002Fui 按钮组件的形式渲染，确保与原版一致的字体、边框半径、内边距和颜色。通过 TypeScript 编写，并支持 CLI 工具来从终端生成或迁移徽章。适用于需要美化 GitHub 项目 README 文件、展示项目状态（如版本、许可、构建状态等）的各种开源软件场景。",2,"2026-06-11 02:51:44","CREATED_QUERY"]