Skip to content

fix: replace placeholder content with live PesaCheck copy — home tools, methodology, principles, funding, contact#53

Merged
kelvinkipruto merged 8 commits into
mainfrom
ft/content-update
Jul 13, 2026
Merged

fix: replace placeholder content with live PesaCheck copy — home tools, methodology, principles, funding, contact#53
kelvinkipruto merged 8 commits into
mainfrom
ft/content-update

Conversation

@kelvinkipruto

@kelvinkipruto kelvinkipruto commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Replaces the Figma lorem-ipsum placeholder content with the real copy from the
live Ghost site (pesacheck.org).

More than fact-checking (closes #48)

The four home-page tool cards now carry the real taglines and descriptions from
the issue:

  • PesaYetu ("Explore. Visualise. Contextualise."),
  • PromiseTracker ("Track promises. Measure progress. Demand accountability."),
  • Tax Clock ("See where your tax time goes.") and Biscuit Index ("Track the cost of everyday living.").

Page content updates (closes #45)

Methodology (/about/methodology) — retitled "How PesaCheck Works";
12 real sections from our-methodology (structure & process, researchers, sources, claim selection, golden rules, editing checklist, social media / corrections / take-down policies, right of reply, attribution), with the page's five figures: the section-lead graphic, fact-checking process infographic, editorial workflow snapshot (captioned), newsroom roles chart (captioned), coverage map and AFCA banner.

Principles (/about/principles) — 7 sections from our-principles: who we are, mission, transparency of sources, non-partisanship, digital-platform partnerships, IFCN standards, corrections — plus its section-lead graphic.

Funding (/about/funding) — built from the same ghost page's "Transparency of Funding" section: how we are funded, editorial independence, and income — with the 2022/2023 Datawrapper funder-breakdown charts shipped as static images (no third-party iframes).

Contact Us (/about/contact-us) — country-office cards synced with contact-us: corrected contacts for Benin, DRC and Senegal, added Somalia's city, dropped wrong cities on Côte d'Ivoire and Nigeria, matched the ghost ordering; WhatsApp blurb placeholder replaced. (Emails decoded from the site's Cloudflare obfuscation — all real addresses.)

Content-layer support

  • Content blocks now support markdown-style [label](href) links and **bold** (nesting links inside bold), rendered by a new shared RichText component — internal links navigate client-side, external open in a new tab
  • New inline img block type with optional caption; the grey placeholder image grid no longer renders for sections without design images.
  • Dead ghost cross-references cleaned up: owner-only Google-form /edit URL swapped for the public viewform, t.co shorteners replaced with the real WhatsApp tip-line URL, broken example links dropped.

Closes #48 #45

Swap the lorem-ipsum tool cards for the real PesaYetu, Promise Tracker,
Tax Clock and Biscuit Index taglines and descriptions from the issue,
and drop the now-unused shared TOOL_BODY placeholder.
@vercel

vercel Bot commented Jul 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pesacheck-ui Ready Ready Preview, Comment Jul 10, 2026 1:16pm

Request Review

Methodology, Principles and Funding pages carried the Figma lorem-ipsum
section template; they now carry the real copy from pesacheck.org
(our-methodology and our-principles — the Transparency of Funding
section backs the dedicated Funding page). Sections/anchors follow the
ghost pages' headings, and the grey placeholder image boxes are gone
(bodies skip the image grid when a section has none).

Contact page: sync the country-office cards with pesacheck.org/contact-us
(Benin/DRC/Senegal contacts, Somalia city, drop wrong cities on Côte
d'Ivoire and Nigeria, ghost ordering) and replace the WhatsApp blurb
placeholder.
The #45 content port dropped the source pages' hyperlinks and images.
Content blocks now support markdown-style [label](href) links, rendered
by a shared RichText component (internal links client-side, external in
a new tab), plus an inline img block with optional caption.

Methodology gets its five figures back (AFCA banner, fact-checking
process infographic, editorial workflow snapshot, newsroom roles chart,
coverage map), downloaded to public/images/methodology. All ghost-page
links are restored across Methodology, Principles and Funding —
including sentences previously trimmed because their links were missing
(africanDRONE/ADR grants, ADDO, iLAB/DFRLab collaboration, Check, the
claim-criteria examples).
The ghost principles page embeds two Datawrapper charts (PesaCheck
funding 2022 and 2023) in its Transparency of Funding section. Rather
than embedding third-party iframes, ship Datawrapper's static PNG
exports in the Our Income section, with year captions and the funder
split described in alt text.
#45)

- The ghost pages' branded graphics now open the "Who We Are" section on
  the Methodology and Principles pages — heading, then image, then copy.
  Hero backgrounds stay on the original Figma artwork.
- Methodology hero titled "How PesaCheck Works" to match the ghost page.
- RichText now supports **bold** (links work inside bold), and the spans
  that are <strong> on the ghost pages — newsroom roles, golden rules,
  verdict labels, org names — are bold here too.
@kelvinkipruto kelvinkipruto changed the title fix(home): replace More than fact-checking placeholder copy (#48) fix: replace placeholder content with live PesaCheck copy — home tools, methodology, principles, funding, contact Jul 10, 2026
@kelvinkipruto
kelvinkipruto marked this pull request as ready for review July 10, 2026 12:48
The p/ul/img block map was copy-pasted in MethodologyBody, FundingBody
and PrinciplesBody, and the ContentBlock type was declared three times
over. Both now live in one place: lib/content-blocks.ts owns the type
(re-exported by the content files for compatibility) and
components/ui/ContentBlocks.tsx owns the renderer.
MethodologyBody/FundingBody/PrinciplesBody and their section navs were
identical templates differing only in name. One AboutPageBody (with
AboutSectionNav) now takes navLabel + sections; pages pass their own
content arrays. The per-page Section/ImageSlot types collapse into
AboutSection in lib/content-blocks.ts.
@kelvinkipruto

Copy link
Copy Markdown
Contributor Author

Hello @maquchizi @koechkevin this is ready for review.

I've followed the agreed approach (content as typed TS structures in lib/*-content.ts), but one thing I'd like your opinion on before we go further: the body copy now embeds inline links and bold as [label](url)/ **bold** inside TypeScript strings, rendered by a small custom RichText component.

It's starting to look like reinventing markdown.

Would it be better to store this long-form content as actual markdown (e.g. .md files rendered with remark / next-mdx-remote) instead of TS strings? It's the industry-standard approach and would let content change without code changes.

The counterpoint is that lib/*-content.ts is meant to be a transitional fallback until content comes from Superdesk; so it may not be worth building a markdown pipeline on a layer we plan to replace.

Which way should we go?

@maquchizi

Copy link
Copy Markdown
Collaborator

@kelvinkipruto I was asking myself the same question when I saw the hoops we're jumping through to render markdown as HTML. I don't think it warrants adding a dependency since we're going to eventually transition to CMS content.

I say we move forward as is and only worry about optimisations/clean up if it turns out we can't load this content from the CMS.

@kelvinkipruto
kelvinkipruto merged commit 6221081 into main Jul 13, 2026
3 checks passed
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.

PesaCheck UI | Fix | More Than Fact Checking PesaCheck UI | Fix | Some Pages Content Update

2 participants