[BREAKGLASS] Website that guides new contributors to contribute to Bitcoin and BTCPay Server https://contribute.btcpayserver.org/
Go to file
r1ckstardev 0ae4ff80fb Fix CSP enforcement, missing PWA icons, and dead og:url
- Add CSP meta tag to index.html since GitHub Pages does not serve
  custom headers from _headers files. Includes 'unsafe-inline' for
  the theme-flash-prevention script.
- Add note to _headers explaining the GitHub Pages limitation.
- Also fix script-src in _headers to include 'unsafe-inline' to
  match the inline theme script that runs before React hydrates.
- Generate android-chrome-192x192.png and android-chrome-512x512.png
  from apple-touch-icon.png. These were referenced in site.webmanifest
  but missing, causing 404s on PWA installs.
- Update og:url from contribute.btcpayserver.org (domain has no DNS
  records) to pavle.org (the actual live domain).
2026-03-13 02:58:49 +00:00
.github/workflows Improve automatic deployment if changes are detected 2026-03-12 21:03:59 +01:00
public Fix CSP enforcement, missing PWA icons, and dead og:url 2026-03-13 02:58:49 +00:00
scripts Create the website 2026-03-12 20:39:20 +01:00
src performance improvements 2026-03-12 20:50:45 +01:00
.gitignore Create the website 2026-03-12 20:39:20 +01:00
CONTRIBUTING.md Create the website 2026-03-12 20:39:20 +01:00
eslint.config.js Create the website 2026-03-12 20:39:20 +01:00
index.html Fix CSP enforcement, missing PWA icons, and dead og:url 2026-03-13 02:58:49 +00:00
LICENSE Initial commit 2026-03-12 14:08:46 +01:00
package-lock.json Create the website 2026-03-12 20:39:20 +01:00
package.json Improve automatic deployment if changes are detected 2026-03-12 21:03:59 +01:00
README.md Create the website 2026-03-12 20:39:20 +01:00
tsconfig.app.json Create the website 2026-03-12 20:39:20 +01:00
tsconfig.json Create the website 2026-03-12 20:39:20 +01:00
tsconfig.node.json Create the website 2026-03-12 20:39:20 +01:00
vite.config.ts Create the website 2026-03-12 20:39:20 +01:00

contribute.btcpayserver.org

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


How it works

  1. A GitHub Actions workflow runs every 6 hours (and on manual trigger)
  2. It fetches all good first issue labeled issues from every public repo in the btcpayserver org
  3. Issues are mapped to skill categories and sub-tags based on repo language and labels
  4. The data is written to public/data/issues.json and the site is rebuilt and deployed to GitHub Pages

The site is fully static — no backend, no API calls from the browser.

Local development

git clone https://github.com/btcpayserver/contribute.btcpayserver.org
cd contribute.btcpayserver.org
npm install
npm run dev

The 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.js

Contributing

See CONTRIBUTING.md.

Stack

  • React 19 + TypeScript (strict)
  • Vite 6 + Tailwind CSS 4
  • Radix UI (Dialog), Lucide React
  • GitHub Actions for data pipeline and deployment

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.