Skip to content

Add Opportunities, Thrive, Blog, and 2026 design system - #2147

Open
jmgasper wants to merge 15 commits into
devfrom
opportunities-v6
Open

Add Opportunities, Thrive, Blog, and 2026 design system#2147
jmgasper wants to merge 15 commits into
devfrom
opportunities-v6

Conversation

@jmgasper

@jmgasper jmgasper commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • adds the Figma-aligned Opportunities listing, challenge details, review details, legacy challenge redirects, lazy server-backed filters, role-correct My competitions, reviewer application roles and public totals, terms, reporting, Markdown H2/H3 TOC, and public-safe Design submission previews
  • completes challenge detail parity with format-aware sanitized HTML/Markdown requirements, API-authorized private details, paginated Submitter registrants, environment-aware forums and scorecards, and safe metadata/discussion/attachment links
  • displays hydrated Engagement skill names with a backward-compatible requiredSkills fallback
  • ports Thrive to the fixed education taxonomy and Blog to the website Payload space using the exact Page and pageContentArticle rich-text contract
  • restores safe HTTP(S)-only Thrive external-article navigation and blocks unsafe or retired-host destinations across cards, videos, direct routes, challenge links, and CMS content
  • removes the unused Contentful SDK, blocks retired Contentful, CTF Assets, and Octana hosts, and regression-tests unsafe javascript, data, and vbscript rich-text links
  • applies the scoped 2026 foundations to Work, Review, Support, System Admin, Calendar, Copilots, Engagements, Procurement, Reports, and Opportunities without changing other applications

Opportunities production-parity follow-up

  • fixes Copilot discovery against both the current and rollout API contracts, including bounded fallback pagination, skill search, filters, and starting-soon ordering
  • makes competition search cover challenge names, descriptions, authored tags, standardized skills, and the synthetic AI track before count and pagination
  • restores registrants, member registration/unregistration, terms, and legacy submission flows; registrants now include ratings and profile avatars
  • changes every member link to the environment-aware Profiles host and safely encodes handles
  • confines the 2026 CSS scope to the Opportunities wrapper so universal navigation and footer colors remain untouched
  • replaces submission History redirects with an in-app history modal and gives authored developer and Marathon submissions their Figma-specific tables and actions
  • restores Marathon provisional/final scores, process/status/progress, chart/list views, and the metadata-gated Dashboard tab
  • embeds the API-backed Forum topic list/detail experience while retaining external create/reply fallbacks
  • completes Winners with placements, final scores, prizes, avatars, rating colors, track wins, and member ratings
  • aligns listing facets, icons, semantic colors, Figtree/Nunito Sans typography, pagination, responsive geometry, and challenge-detail states to the supplied Figma frames

Deployment configuration

Required browser-readable Payload tokens:

  • REACT_APP_PAYLOAD_CMS_EDU_ACCESS_TOKEN for Thrive education content
  • REACT_APP_PAYLOAD_CMS_WEBSITE_ACCESS_TOKEN for website space xooissnm36jt, environment uat, including Blog

REACT_APP_PAYLOAD_CMS_DEFAULT_ACCESS_TOKEN remains supported by the shared CMS library for default-space consumers, but Thrive and Blog do not depend on it. Payload CORS must allow the platform-ui origins. No Contentful or Octana runtime fallback remains.

Deploy the matching API contracts with this UI:

Full Figma screen audit

  • aligns Competition, Engagement, Copilot, and Review list and grid screens to the authored desktop geometry, filter rhythm, pagination, fonts, semantic colors, exact SVG controls, content-driven card heights, and responsive fallback
  • aligns Challenge detail variants, tabs, prize and winner states, terms dialogs, sidebar, phase lifecycle, registration actions, Marathon submissions, dashboard, and 10-placement prize presentation
  • aligns Review detail requirements, split and single compensation states, application table, reviewer CTA, support modal, and responsive 792/24/384 layout
  • preserves API-backed lifecycle truth rather than fabricating sample Figma data; recommendation badges and unavailable forum metrics remain explicit API boundaries

Validation

  • yarn lint passed after final integration
  • npx tsc --noEmit --pretty false passed
  • all Opportunities tests passed: 22 suites / 117 tests
  • LOGICAL_ENV=dev yarn build passed; existing repository CSS-order, broad lint-warning, and bundle-size warnings remain non-fatal
  • compiled desktop browser smoke render passed against the authored Figma layout
  • git diff --check passed

Figma card follow-up

  • aligns the four opportunity selector cells to the authored dimensions, colors, typography, overlap, map, and exact SVG icon assets
  • adds track-specific competition pills, challenge-type icons, registration-state icons, placement-prize footer, phase countdown/progress, and the Figma submissions/registrants/posts rail
  • refreshes competition phase timing every minute and on focus, and documents the Challenge API presentation contract

Comment thread src/apps/opportunities/src/components/ChallengeMarkdown.tsx Fixed
Comment thread src/apps/blog/src/components/BlogRichText.spec.tsx Fixed
@jmgasper
jmgasper marked this pull request as ready for review August 13, 2026 20:03
@jmgasper
jmgasper requested a review from kkartunov as a code owner August 13, 2026 20:03
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.

2 participants