A unified landing page that surfaces all good first issues across the BTCPay Server GitHub organization, filtered by contributor skill — developer, writer, designer, or marketer.
Live: https://contribute.btcpayserver.org
- A GitHub Actions workflow runs every 6 hours (and on manual trigger)
- It fetches all
good first issuelabeled issues from every public repo in thebtcpayserverorg - Issues are mapped to skill categories and sub-tags based on repo language and labels
- The data is written to
public/data/issues.jsonand the site is rebuilt and deployed to GitHub Pages
The site is fully static — no backend, no API calls from the browser.
git clone https://github.com/btcpayserver/contribute.btcpayserver.org
cd contribute.btcpayserver.org
npm install
npm run devThe dev server uses the seed data in public/data/issues.json. To fetch live data:
ORG_GITHUB_TOKEN=ghp_your_token node scripts/fetch-issues.jsSee CONTRIBUTING.md.
- React 19 + TypeScript (strict)
- Vite 6 + Tailwind CSS 4
- Radix UI (Dialog), Lucide React
- GitHub Actions for data pipeline and deployment
GitHub Pages via actions/deploy-pages. Source: main branch.
Pages source must be set to GitHub Actions in repo Settings → Pages.
Required secret: ORG_GITHUB_TOKEN — a PAT with repo:read scope to query cross-repo issues.