Skip to content

feat: redesign into trusted community website (incl. YouTube lives auto-fetch) - #9

Open
SaharPak wants to merge 3 commits into
mainfrom
feat/auto-fetch-youtube-lives
Open

feat: redesign into trusted community website (incl. YouTube lives auto-fetch)#9
SaharPak wants to merge 3 commits into
mainfrom
feat/auto-fetch-youtube-lives

Conversation

@SaharPak

@SaharPak SaharPak commented May 14, 2026

Copy link
Copy Markdown
Contributor

Summary

This branch now contains two related pieces of work. The headline change is a full redesign of the site into a credible, trust-safe official community website; it builds on the earlier YouTube-lives automation already on this branch.

1. Community website redesign (primary)

Rebuilds the homepage from an interview-focused landing page into a mission-driven community ecosystem site.

  • Central content config (src/config/site.ts) drives nearly all copy, links, stats, programs, sponsorship packages, and FAQ, so content can be edited without touching components.
  • New homepage sections: hero (join-first CTAs, donation no longer primary), trust stats, mission, 7-stage migration journey, community intelligence (aggregate and anonymized only), programs (status badges), Product Builders / Demo Day (labeled pilot), resources, partnership, support the mission (secondary), founder, FAQ, contact.
  • New /partners page: accepted vs not-accepted partnership policy, sponsorship packages (editable, hideable prices), and a disclosure note.
  • Sessions reuse the existing Supabase useVideos hook with loading, empty, error, and sample-data fallback states, so the site works with no API keys.
  • SEO / Open Graph metadata improved; JSON-LD Organization structured data added.
  • Rewrote Navbar, Footer, Hero, and the 404 page with proper Persian / RTL support.
  • Removed fabricated testimonials and mentor data (fake names, placeholder LinkedIn URLs, rickroll video IDs) for trust safety.
  • Added README, .env.example, MANUAL_TEST_PLAN, and STABILIZATION_REPORT.

2. YouTube lives auto-fetch (earlier work on this branch)

  • Build-time GitHub Action fetches upcoming live streams from the Tech Immigrants YouTube channel via YouTube Data API v3.
  • Scheduled workflow runs scripts/fetch-upcoming-lives.mjs, writes src/data/youtube-events.json, and commits on change.
  • API key stays as a GitHub Secret (YOUTUBE_API_KEY), never bundled into client code.

Why

The site needed to read as a trusted, community-led ecosystem (content, data-backed insights, open-source projects, Demo Day, career resources, and a trust-safe partnership model) rather than an interview list or a donation page. It also had trust risks: fabricated testimonials and mentor profiles with fake/placeholder data. The redesign establishes a credible official site that protects community trust, keeps monetization non-extractive and transparent, and supports Persian/RTL as the primary experience.

How it was tested

  • npm run build passes locally.
  • npm run lint passes with 0 errors (only pre-existing shadcn/ui fast-refresh warnings remain).
  • Verified in-browser at /fa/: homepage sections, /partners page, mobile menu open/close, Persian/RTL layout and numerals.
  • Verified the Supabase-off path: sample sessions render with a clear "sample data" notice and no crash; loading skeletons and error fallback present.
  • Confirmed SEO/OG/JSON-LD present in built dist/fa/index.html.
  • Secret scan before push: only .env.example (placeholders) is tracked; .env is gitignored; no tokens or private data committed.
  • See MANUAL_TEST_PLAN.md for the full 32-case checklist.

Known limitations

  • Placeholder contact emails and some social handles in src/config/site.ts should be confirmed before launch.
  • Contact / partner / Demo Day CTAs use mailto: links; no backend form yet.
  • Community Intelligence report link shows "coming soon" until the report is published (reportReady flag).
  • Single JS bundle is ~647 kB (192 kB gzip); route-based code-splitting is a future optimization.
  • No full i18n system; Persian is primary with English backups in config/SEO (intentionally not overbuilt).
  • GithubSection and LiveEventsSection integrations are preserved but not currently mounted on the homepage.

Setup required (for the YouTube lives action)

Add a GitHub repository secret after merging:

  1. Create a YouTube Data API v3 key in Google Cloud Console.
  2. Repo Settings > Secrets > Actions > New secret: YOUTUBE_API_KEY.
  3. Trigger the workflow once via the Actions tab to verify.

Closes #1

SaharPak added 3 commits May 14, 2026 20:36
Replace static event data with a build-time pipeline that fetches
upcoming live streams from the YouTube Data API v3. A scheduled
GitHub Action (every 6h) writes src/data/youtube-events.json and
commits the result, triggering a Cloudflare Pages rebuild.

- Add scripts/fetch-upcoming-lives.mjs (resolves channel, fetches
  upcoming lives, writes JSON)
- Add .github/workflows/fetch-youtube-lives.yml (cron + manual)
- Rewrite src/data/events.ts as a thin adapter over the JSON
- Show YouTube thumbnails in LiveEventsSection when available
- Gracefully hide guest/role/country badges for auto-fetched events
- Enable resolveJsonModule in tsconfig

Closes #1
…be-lives

# Conflicts:
#	.github/workflows/fetch-youtube-lives.yml
Rebuild the homepage from an interview-focused landing page into a
credible, mission-driven official community site for Tech Immigrants.

- Add central content config (src/config/site.ts) driving nearly all
  copy, links, stats, programs, sponsorship packages, and FAQ
- Recompose homepage: hero (join-first CTAs), trust stats, mission,
  7-stage migration journey, community intelligence (aggregate and
  anonymized), programs, product builders, resources, partnership,
  support the mission (secondary), founder, FAQ, contact
- Add /partners page with accepted vs not-accepted policy, sponsorship
  packages (editable, hideable prices), and disclosure note
- Sessions reuse Supabase useVideos with loading, empty, error, and
  sample-data fallback states
- Improve SEO/Open Graph metadata and add JSON-LD Organization data
- Rewrite Navbar, Footer, Hero, and the 404 page (Persian/RTL)
- Remove fabricated testimonials and mentor data for trust safety
- Add README, .env.example, MANUAL_TEST_PLAN, and STABILIZATION_REPORT
@SaharPak SaharPak changed the title feat: auto-fetch upcoming YouTube lives via GitHub Action feat: redesign into trusted community website (incl. YouTube lives auto-fetch) Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fetch and display next upcoming YouTube live automatically

1 participant