Website: GitHub stars / forks / PRs counter in navbar
Maintainer thường phản hồi trong vòng 1 ngày
@TanmayNileshShinde đang làm issue này rồi.
Từ ngày 15/10/2026.
- #48 của @TanmayNileshShinde — đang mở
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 62/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- nextjs, react, tailwindcss, typescript
- Lĩnh vực
- frontend
Hướng nghiên cứu
Start with src/components/landing/navbar.tsx to see the current desktop and mobile GitHub buttons, then create GitHubCounter in src/components/landing/. Read the caching guide in node_modules/next/dist/docs/ before writing the server-side fetch with hourly revalidation, and add a unit test for the count formatter with the listed values. Done when the stars pill replaces the round icon on desktop and mobile, no client-side GitHub requests appear, and bun run lint, typecheck, test and build pass.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Website: GitHub stars / forks / PRs counter in the navbar
The landing navbar currently shows a bare round GitHub icon (src/components/landing/navbar.tsx, desktop + mobile) and a plain "Star on GitHub" link in the mobile menu. Replace them with a live counter badge that shows the project's traction and nudges visitors to star it.
Design
A segmented pill with two parts and a divider between them:
┌──────┬──────────────┐
│ ⬤ │ 500+ ☆ │ ← stars
└──────┴──────────────┘
GitHub count + metric icon
logo
- Left: GitHub mark
- Divider: a 1px vertical line in the border colour
- Right: a rounded count followed by the icon for that metric
- Stars → star outline icon (
Starfrom lucide-react) - Forks → fork icon (
GitFork) - Pull requests → PR icon (
GitPullRequest)
- Stars → star outline icon (
- Rounded rectangle,
border-white/[0.1], dark background, white text — matching the existing navbar buttons - Hover: subtle
bg-white/5, same as the current GitHub button - Whole pill links to the repo (or
/stargazers,/forks,/pullsfor each metric)
Behaviour
- Count formatting: round down to a friendly bucket followed by
+(e.g.10+,150+,500+,1k+,1.2k+). UseIntl.NumberFormatwithnotation: "compact"for 1000 and above. - Data source: GitHub REST API
GET /repos/babelize/babelize-elements(stargazers_count,forks_count) and the search API for open PRs (is:pr is:open repo:babelize/babelize-elements). - Fetch on the server, cached. Unauthenticated GitHub API calls are capped at 60/hour per IP, so never fetch from the client. Fetch in a server component or route with time-based revalidation (e.g. every hour). Read the caching guide in
node_modules/next/dist/docs/first — this Next.js version differs from older ones. - Public, unauthenticated API only. No token, no GitHub App, no secrets — contributors and the deployment won't be given repo access or credentials. All the data needed (stars, forks, open PRs) is public, so the unauthenticated endpoints are enough; server-side caching keeps us well under the 60 req/hour limit.
- Fallback: if the request fails, render the pill with no count (logo + icon only). Never show
0or an error. - Accessibility:
aria-label="Star babelize-elements on GitHub (500+ stars)"; mark the iconsaria-hidden.
Placement
- Desktop navbar: the stars pill replaces the round GitHub icon
- Mobile navbar: compact stars pill (it may hide the count below
sm) - Mobile menu: replace the "Star on GitHub" text link with the pill
- Optional: show stars, forks and PRs together in the landing "Community" / "Contribute" section
Acceptance
- Reusable
GitHubCountercomponent insrc/components/landing/with ametric: "stars" | "forks" | "prs"prop - Unit test for the count formatter (
0,9,10,150,999,1000,1234,12500) - No extra client-side network requests (confirm in the Network tab)
- Works in light and dark mode on the docs site if reused there
bun run lint,typecheck,testandbuildpass
- Ngôn ngữ chính
- TypeScript
- Star
- 39
- Fork
- 16
- Merge trung bình
- 2 ngày 12 giờ
- Pull request đã merge (30 ngày)
- 10
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của babelize/babelize-elements
-
bug website
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
babelize/babelize-elements#46 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug language-switcher priority: medium
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
babelize/babelize-elements#26 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
component enhancement help wanted
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
babelize/babelize-elements#47 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug component rtl-layout
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
babelize/babelize-elements#45 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Website: revamp and improve the landing pageCó thể đã có người làm @anjalinayak01 đã nhận 6 ngày trước. Đang mởenhancement help wanted priority: medium website
Độ khó 4/5 Hơn một tuần Mức phù hợp với người mới 30/100
babelize/babelize-elements#37 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của babelize/babelize-elements
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
polarsource/polar#15580 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
accepted bug via-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 69/100
pingdotgg/t3code#20931 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug/1-unconfirmed kind/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 83/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
ranxianglei/billion-context#3583 ·
Maintainer thường phản hồi trong vòng 1 ngày