How techcsispit/git-github-workshop works
Source Start is a contributors board populated from one JSON profile per contributor. Visitors browse searchable cards, view a newest-first event display, or share an individual profile. Profile loading supports local files and GitHub-backed updates; the README documents the contribution-file workflow. Some component wiring is inferred only where documented, since several page and component sources were not sampled.
Main entry points: profiles.ts Profile loader · app/page.tsx Board page · board.ts Board logic · [username]/page.tsx Profile page
Components 23
Site pages
- Board page
app/page.tsx - Live page
app/live/page.tsx - Profile page
app/u/[username]/page.tsx - Share image
app/u/[username]/opengraph-image.tsx - Profiles API
app/api/profiles/route.ts
Profile data
- Profile loader
lib/profiles.ts - Profile JSON
profiles - Profile validation
scripts/validate.mjs
Board experience
- Board logic
lib/board.ts - Contributor board
components/Board.tsx - Live board
components/LiveBoard.tsx - Live updates
lib/useLiveProfiles.ts - Arrival spotlight
components/Spotlight.tsx - Contributor card
components/ContributorCard.tsx - Board introduction
components/Hero.tsx - Join panel
components/JoinPanel.tsx - Flip interaction
components/FlipCard.jsx
Profile sharing
- Share controls
components/ShareButtons.tsx
Visual effects
- Shape background
components/ShapeWaves.jsx - Dither background
components/Dither.jsx
Other components
- Visitor
- Contributor
- GitHub API
Connections 31
- Visitor → Board page: opens board
- Visitor → Live page: opens live view
- Visitor → Profile page: opens profile
- Contributor → Profile JSON: adds profile
- Board page → Profile loader: loads profiles
- Board page → Board logic: sorts profiles
- Board page → Contributor board: renders board
- Board page → Board introduction: renders intro
- Board page → Join panel: renders join panel
- Profile loader → Profile JSON: reads locally
- Profile loader → GitHub API: fetches profiles
- Profile loader → GitHub API: looks up join dates
- Profile loader → Profile validation: checks profiles
- Profiles API → Profile loader: loads profiles
- Live page → Profile loader: loads profiles
- Live page → Live board: renders live board
- Live board → Live updates: tracks updates
- Live updates → Profiles API: polls profiles
- Live updates → Board logic: merges arrivals
- Contributor board → Board logic: searches and filters
- Contributor board → Flip interaction: flips cards
- Live board → Board logic: orders profiles
- Live board → Arrival spotlight: highlights arrivals
- Profile page → Profile loader: loads profiles
- Profile page → Board logic: finds profile
- Profile page → Contributor card: renders profile
- Profile page → Share controls: offers sharing
- Share image → Profile loader: loads profiles
- Share image → Board logic: finds profile
- Contributor board → Shape background: renders background
- Contributor board → Dither background: fallback background