Skip to content

Rebuild foundation: provenance-first data, design system, methodology (Phase 1) - #5

Draft
Soumoditya wants to merge 3 commits into
mainfrom
claude/india-politics-transparency-site-72Db2
Draft

Rebuild foundation: provenance-first data, design system, methodology (Phase 1)#5
Soumoditya wants to merge 3 commits into
mainfrom
claude/india-politics-transparency-site-72Db2

Conversation

@Soumoditya

Copy link
Copy Markdown
Owner

Why

The site's biggest problems were outdated information and sources that only linked to homepages (e.g. cbi.gov.in) instead of the actual record behind a claim. This is Phase 1 of the "MyNeta, but better" rebuild agreed with the maintainer: a provenance-first foundation where every fact is traceable and its freshness is visible, plus a coherent design/motion system and a non-partisan editorial stance.

Full architecture in the approved plan (all phases): provenance data model → Current Government hub → Data & Trends visualizations → refresh tooling.

What's in this PR (Phase 1)

Provenance + freshness (the core fix)

  • lib/sources.tsSourced<T> type, deep-link builders (MyNeta, IndiaKanoon, eCourts, ECI, PRS, Google News, CAG, Budget), a freshness() helper, and a curated list of non-partisan primary sources.
  • components/SourceTag.tsx — renders a deep-link source + "verified {date}" + a freshness dot (🟢 recent / 🟡 check / 🔴 likely outdated).
  • Migrated all 64 politicians: added myNetaUrl + verifiedOn; upgraded all 200 controversy sources from bare homepages → deep links (live news / official) with sourceLabel and preserved officialSource.
  • data/stats.json + rebuilt StatsTicker — every ticker fact is now sourced, dated and clickable (no more hardcoded unsourced numbers).

Design, UX & motion system

  • CSS design tokens (color/space/radius/type/shadow), motion primitives (.reveal, .stagger, .lift), focus-visible a11y, and prefers-reduced-motion support in globals.css.
  • Upgraded AnimatedSection (stagger / delay / reduced-motion aware).

Party visual identity

  • getPartySymbol() — authentic ECI election symbols (Lotus, Hand, Broom, Cycle, Elephant…) as recognizable emoji stand-ins (public-domain symbols, not trademarked logos). Shown as an avatar badge and on party chips.

Editorial / tone (bold but defensible)

  • New /methodology page: primary sources, verification process, freshness policy, and an explicit non-partisan commitment.
  • Neutralized loaded copy ("numbers they don't want you to see" → "the numbers, from official records"), fixed the NAGRIK logo typo, and rewrote metadata to a non-partisan, sourced framing.

Verify

  • npm run build passes — 77 pages including the new /methodology.
  • Open any politician → each controversy shows a freshness-tagged deep-link source; header links go to MyNeta/IndiaKanoon/Google News, not homepages.
  • Ticker items link to their source; Methodology lists every primary source.

Not in this PR (later phases)

Current Government hub, /api/data proxy for data.gov.in, the Data & Trends visualization section, and refresh tooling.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VryNA7FL9SczifHWfGUe6v


Generated by Claude Code

Soumoditya and others added 2 commits May 27, 2026 18:26
…ted stats

- Interactive India political map (react-simple-maps) with alliance filter
- Politician detail page with 5 tabs: Controversies | Criminal Cases | Assets | Family | Live News
- Each controversy has 5 source buttons: Google News, IndiaKanoon, Myneta.info, Official Source, eCourts
- Criminal Cases tab: full explainer, verify links, related controversies
- Live News tab: real-time fetch via /api/news, fallback links (TOI, NDTV, The Print)
- Animated counters on scroll into view
- India political map on homepage with party alliance filter

https://claude.ai/code/session_01VryNA7FL9SczifHWfGUe6v
Foundation for the 'MyNeta but better' rebuild:
- lib/sources.ts: Sourced<T> type, deep-link builders (MyNeta, IndiaKanoon,
  eCourts, ECI, PRS, Google News, CAG), freshness() helper, curated primary sources
- components/SourceTag.tsx: source link + verified date + freshness dot (green/amber/red)
- Migrated all 64 politicians: added myNetaUrl + verifiedOn; upgraded all 200
  controversy sources from bare homepages to deep links (news/official) + sourceLabel
- PoliticianDetailClient: uses lib/sources + SourceTag; ECI election-symbol badge on avatar
- data/stats.json + StatsTicker: every ticker fact now sourced, dated and clickable
- app/methodology: sources, verification process, freshness policy, non-partisan statement
- Design system: CSS design tokens + motion primitives + reduced-motion in globals.css;
  upgraded AnimatedSection (stagger/delay/reduced-motion)
- Party ECI election symbols via getPartySymbol() (public-domain symbols, not logos)
- Tone pass: neutralized loaded copy; fixed NAGRIK typo; neutral non-partisan metadata

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VryNA7FL9SczifHWfGUe6v
@vercel

vercel Bot commented Aug 1, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
news Ready Ready Preview Aug 1, 2026 3:13pm

…ch, 2026 budget

- data/dynasties.json + /nepotism: dynasty relations, family businesses (Jay Shah,
  Gadkari sons, Gandhis, Pawars, Thackerays, Yadavs, Abdullahs...), family-abroad —
  balanced 9 NDA / 9 INDIA / 2 regional, neutrally worded, every entry deep-sourced,
  contested items marked 'alleged'; cross-links to full profiles
- data/remarks.json + /remarks: documented divisive remarks with quote + fallout
  (EC notice / FIR / court) + source; balanced 5 NDA / 5 INDIA; contested marked
- Politicians page: 'Research ANY neta' panel — deep links (MyNeta, News, IndiaKanoon,
  PRS) for anyone incl. locals not yet profiled; party ECI symbols on cards
- Budget refreshed to real FY2025-26 figures (₹50.65L Cr total, 4.4% deficit,
  ₹11.21L Cr capex) with source tags; homepage budget figures updated to match
- Homepage: newbie 'What do you want to know?' trackers section
- Navbar: added Nepotism + Remarks; renamed Methodology -> Sources

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VryNA7FL9SczifHWfGUe6v
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