year


2026

discipline


Product thinking
Vibe coding
Data visualisation

VIZ: Worldwide Attention



Have you ever questioned your social media algorithm’s bias? I certainly have, and I wanted to gain factual knowledge of the degree to which certain, global topics are weighted, both in their overall share and tone of sentiment, by mainstream media. This was the core idea behind starting development for this data visualisation app centred on worldwide attention.

value


Contrast and relation over time are the most interesting parts about globally developing narratives, and by playing with this app, you will be able to draw your own conclusions about some of them. Across eight critical topics, it shows the share of each nation's newsroom coverage related to that topic, and how far that sits from our world's average. It is an attention map, keyed to where stories are published rather than where events happen. A country is left unpainted when its sample is too thin to say anything conclusive that beats random chance. Every figure is backed by evidence.


view

Share of national news coverage
0%

CountryShareArticlesSentimentReading from


architecture & infrastructure


Data is sourced actively from GDELT, the leading provider of a rolling window of public, raw data snapshots covering world news translated from more than 60 languages, and I used Claude Code to effectively assist me in building on top of a previously hand-coded base. The app is conceived as a widget for easy integration into my existing design system.

Given the unpredictable, public API and lack of documentation, architecture was required to be built with a priority on robustness and light weight to avoid dependencies or negative impacts on load for the rest of this portfolio. A retrying CI/CD cron job pipeline queries GDELT on a rate-limited queue and writes any new raw observations into my postgres DB hosted via Supabase, where data smoothing happens and co-movements are calculated. Over time, the DB will collect a window of data bigger than the one GDELT retains, which will allow for advanced trend analysis capabilities in the future. A separate export script reads that database and emits static, sanitised JSON files to my CDN. No secrets are ever used in the browser, no live database connections are established; nothing can break under load. The D3.js client fetches the pre-structured files per topic and easily computes all five views for any given theme locally with minimal resources.

backlog


- Diffusion of news over time
- Analysis of sentiment shifts via article lookup
- Location-based coverage of new stories
The Daily Product

A product newspaper based on my agentic research system for product management trends and industry news. Currently in development. Coming soon.

copyright

© Kenneth Itamah

All rights reserved.
2026