Web portal for browsing Juniper Validated Designs.
Live: https://juniper.github.io/jvd/portal/
- Framework: Vite + React 19 + TypeScript
- Styling: Tailwind CSS 4 + shadcn/ui (Radix)
- Hosting: GitHub Pages (gh-pages branch,
/portal/subpath) - Build: Bun
Deployment is automatic. On every push to main that touches portal/**,
the .github/workflows/portal-deploy.yml workflow:
- Builds the static site with Bun.
- Copies
dist/index.htmltodist/404.htmlfor SPA-style fallback. - Publishes the contents of
dist/togh-pages/portal/viapeaceiris/actions-gh-pages@v4withkeep_files: trueso other subdirectories ongh-pagesare preserved.
Pull requests run the build (without deploying) so PR checks catch broken builds before merge.
JVD catalog content lives in src/data/jvds.json.
Each entry: id, name, area, description, platforms, os,
repoPath. The catalog and area-badge counts derive from this file.