8000 GitHub - pnp/spfx: Centralized GitHub pages site for all spfx samples · GitHub
[go: up one dir, main page]

Skip to content
pnpPublic

About

Centralized GitHub pages site for all spfx samples

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SPFx Samples

Copilot, SharePoint, Teams and more. A community-built Microsoft 365 sample gallery, powered by SPFx, with a distinctive Parker/blue identity and shared Microsoft 365 & Power Platform Community navigation.

Open the live gallery

Gallery build and deployment

The Astro gallery is published from main through GitHub Actions and GitHub Pages. Use the gallery link above or the repository's About link to test it.

Run locally

Use Node.js 22.23.4+ and npm 11. To use the supported npm without changing a shared machine's global installation:

npm exec --yes --package=npm@11.21.1 -- npm ci
npm run samples:refresh
npm run dev

Open http://localhost:4321/spfx/. The first generation prepares local screenshot previews; later runs reuse the cache. Development and production builds do not install or execute any source sample projects.

npm test
npm run check
npm run build
npx playwright install chromium
npm run test:e2e
npm run preview -- --port 4321

Astro requires the stated Node version. TypeScript 6 is intentional: the current Astro checker supports TypeScript 5/6, not TypeScript 7. npm 11 avoids the npm 10 peer-resolution failure encountered when installing the Astro toolchain. Browser tests start a production preview on port 4321, or reuse an existing local preview there; Astro permits only one preview process per project. npm test first generates its public catalog inputs from the audited metadata, so the same command works after a clean checkout and source refresh.

The experience

  • Microsoft 365-first, with Copilot, SharePoint, Teams and Connections visibly represented in the story, artwork and discovery tabs.
  • Search across sample text, technology, source and contributors.
  • Combined component, technology, SPFx-version and source filters: OR within a group, AND between groups; dynamic counts and shareable URL state.
  • Newest, updated and alphabetical sorting, pagination, reset and empty states.
  • A browser-local saved collection, without accounts or analytics.
  • Sample details, source-specific documentation/download/issue links, contributor recognition, getting started and What's new.
  • Persistent light/dark themes, responsive navigation and a complete no-JavaScript sample directory.

SharePoint remains an important, explicit part of the gallery. It is not the exclusive portal brand, and original sample titles, screenshots and attribution are not rewritten to hide their product context.

Data flow and quality

The source registry configures the five upstream repositories. Collection pins each revision and reads original metadata/package/component manifests. It does not import merged feeds that would duplicate extensions.

  1. npm run samples:refresh updates local .metadata/samples.json and the audit.
  2. npm run catalog:generate creates the typed public catalog, compact discovery index and cached primary screenshot previews.
  3. Astro generates the gallery and every sample's static detail page.

Generated snapshots, public catalog files, previews and build output are ignored by Git. The refresh workflow recreates them from source.

Known source defects remain visible in sample details and catalog health. Missing descriptions or versions are not fabricated, and package mismatches are not silently advertised as verified compatibility. Reviewed support folders stay inventoried without becoming fake samples. The two verified Bot Framework ACEs keep their real framework rather than an invented SPFx version.

Existing errors are recorded in the reviewed quality baseline. Incomplete collection and new errors fail explicitly. npm run samples:baseline is a deliberate review operation, never an automatic CI repair. Source metadata quality is separate from sample build/runtime validation.

Primary previews are resized to WebP, cached locally and accompanied by a public processing/provenance report. Missing, oversized or undecodable images use the clearly labeled generic fallback. Original media and author attribution stay in their source repositories.

Publishing

The gallery workflow runs daily at 04:17 UTC, manually, and on relevant central-repository changes:

Collect -> audit -> unit tests -> type check -> build -> browser/accessibility tests -> upload Pages artifact -> deploy.

Pull requests validate but do not deploy. Only the separate github-pages deployment job receives Pages/OIDC write permissions. A failed collection, quality gate or build cannot replace the last successful deployment.

Pages is configured with Source: GitHub Actions, HTTPS and a github-pages environment restricted to main. The verified deployment passed the Linux build, 90 unit tests and 22 browser checks. All 22 desktop/mobile checks were also run successfully against the public site, including discovery, saved collections, themes, source actions, fallbacks and accessibility.

For an on-demand refresh, open Actions -> Refresh and publish gallery -> Run workflow and select main. Daily refresh remains scheduled for 04:17 UTC; GitHub schedules are best-effort.

Tracking and credits

The Parker artwork and fonts are reused from the community Script Samples redesign under its MIT license; the asset notice preserves attribution. Screenshot rights remain with their original sample owners. The gallery adds no visitor tracking.

About

Centralized GitHub pages site for all spfx samples

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0