Skip to content

feat(incubator): November 2026 challenge on media bias, archive October - #614

Merged
mohanadft merged 5 commits into
mainfrom
feat/november-challenge
Nov 6, 2026
Merged

mohanadft merged 5 commits into
mainfrom
feat/november-challenge

Conversation

@mohanadft

Copy link
Copy Markdown
Collaborator

Summary

Replaces /monthly-challenge with the November 2026 Incubator challenge: How do we expose and combat hasbara, pro-Israel bias and Zionist ownership and influence of mainstream news media? October is archived on its own page and listed at the foot of the new one, and the homepage gets a new challenge popup.

November page (/monthly-challenge)

  • Hero: Grove Green, with the question, Apply for this challenge and Join the brainstorming session on November 20th.
  • Framing specimen: an illustrative headline marked up like a copy editor would (red wavy underline and numbered notes such as "Killed by whom?"), then rewritten with the actor named. It is captioned as illustrative.
  • What are the T4P Challenges: now says "more than 100 projects".
  • About: a numbered "playbook" of how coverage is bent (passive voice, unequal coverage, selective doubt, silenced newsrooms, concentrated ownership). Each item links to the questions that address it, followed by the ask.
  • Questions: the nine questions as a numbered 01 to 09 list.
  • Projects: cards pulled live from ProjectHub.
  • Brainstorm: a ticket-style block (Fri Nov 20, 8:30pm CET, plus the visitor's local time) with a Register button. It hides after the session.
  • Close: the dark Apply block, then Previous challenges as the last section.
  • Apply buttons go to https://projecthub.techforpalestine.org/apply, as the brief specifies.

October archive (/monthly-challenge/october-2026)

  • The October page moved intact, with an "Archived challenge" strip linking to November. The finished hackathon section was removed.

Homepage popup

  • Look: a compact card: question on green, a mini framing specimen, the brainstorm date with local time, See the challenge / Register for Nov 20, and No thanks.
  • Behaviour: opens after 8s or 25% scroll, shows once per visitor, ends Nov 30 CET, and becomes a bottom sheet on phones. The newsletter popup stays hidden for that visit once this popup has shown.
  • Plausible events: Challenge Popup Shown, Challenge Popup CTA Click, Challenge Popup Dismissed, plus Challenge Apply Click and Challenge Brainstorm Click on the page.

Housekeeping

  • Nav and footer now say "November Challenge".
  • Data split into src/data/challenges/{index,october-2026,november-2026}.ts.
  • Shared ChallengeProjectCard component.
  • Removed the unused hackathon-2026 images and the hackathonPopup util.

Known gaps

  • Accountable Media and Bulletin are not in ProjectHub's public list, so their cards don't render. They will appear automatically once they're published there.
  • Bias-Proof has no logo or website in ProjectHub, so its card shows initials and links to its profile.
  • Proof red (#C8102E) is a deliberate exception to the one-green rule in DESIGN.md. It's used only for the editor's marks, in its error sense.
  • The archive comes after the Nightfall block, which breaks DESIGN.md's "dark block is the last thing before the footer". It's there because the archive was requested as the last section.

Test plan

  • pnpm lint: 0 errors (the 14 warnings are in files this PR doesn't touch)
  • pnpm check: 0 errors
  • pnpm test: 446 passed, including new challengePopup and localTime suites
  • Preview: /monthly-challenge hero, specimen, playbook links jump to questions, brainstorm ticket shows local time
  • Preview: /monthly-challenge/october-2026 renders with the archived strip, and "Previous challenges" links to it
  • Preview: homepage popup opens after 8s or 25% scroll; Esc, close, backdrop and No thanks all dismiss it for good (clear the t4p-challenge-2026-11-popup localStorage key to reset); bottom sheet on mobile; newsletter popup doesn't also appear
  • Preview: no CSP violations in the console

Replace /monthly-challenge with the November 2026 Incubator challenge: how do
we expose and combat hasbara, pro-Israel bias and Zionist ownership and
influence of mainstream news media?

- New page direction, distinct from October: Grove Green hero with an
  annotated "framing specimen" (an illustrative headline marked up like a
  copy editor would, then rewritten with the actor named), a marked-up
  playbook of how coverage is bent cross-linked to the nine questions,
  numbered question index, ticket-style brainstorm block for Nov 20 with the
  visitor's local time, supported-project cards from ProjectHub
- Apply buttons go to projecthub.techforpalestine.org/apply per the brief
- October moves intact to /monthly-challenge/october-2026 with an archived
  notice (finished hackathon section removed) and is listed under "Previous
  challenges" at the foot of the page
- Homepage popup for November: compact Grove Green card with a mini framing
  specimen, after 8s or 25% scroll, once per visitor, ends Nov 30 CET, bottom
  sheet on phones; the newsletter popup stands down when it has shown
- Brainstorm promos hide after the Nov 20 session; nav/footer label updated
- Shared ChallengeProjectCard; data split into src/data/challenges/
- Remove unused hackathon-2026 images and hackathonPopup util
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Deploying website with  Cloudflare Pages  Cloudflare Pages

Latest commit: 89aa591
Status: ✅  Deploy successful!
Preview URL: https://b58f2db6.website-aun.pages.dev
Branch Preview URL: https://feat-november-challenge.website-aun.pages.dev

View logs

Replace the framing specimen with a news-site article header from a
fictional outlet ("The Consent"), its headline corrected in red: words
left out written in above caret arrows ("Palestinians", "by Israel"),
"as tensions rise" and "health ministry says" struck through,
"genocide continues" written in. One CorrectedHeadline component, em-sized
so it scales from the page hero (lg, on green) to the homepage popup (sm).
Screen readers get the original and corrected headlines as text.
- "Concentrated ownership" -> "Pro-Israel owners" in the November playbook
- pickChallengeProjects accepts a per-project fallback (pitch, website,
  optional logo) used only when ProjectHub doesn't list the project
  publicly, so a supported project can still get a card
- Drop Subscribe, byline, read time and the hamburger: wordmark, section
  and the corrected headline only
- Inserts sit above the line with a drawn arrow into the gap (the arrow
  glyph wasn't in Outfit); the first one hangs over "38" instead of past
  the card edge
- Tighter headline leading so it reads as one headline, not a list;
  "genocide continues" no longer splits across lines
- Keep the comma outside the strike so the corrected line reads right
- Popup caption up to 11px

Reviewed by rendering the component standalone in headless Chrome at the
hero (440px on green) and popup (464px, 311px) widths.
Shifting the "Palestinians" label left to keep it on the card moved its
arrow onto the "k" of "killed". Pin the arrow to the caret instead, and
shorten both arrows so the tips stop above the letters.
@mohanadft
mohanadft merged commit 8e7f4d2 into main Nov 6, 2026
5 checks passed
@mohanadft
mohanadft deleted the feat/november-challenge branch November 6, 2026 02:57
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.

1 participant