ABOUT / A PERSONAL PROJECT

One city. Thousands of stories. A different way to read the news.

Jakarta, 730 Hari is an independent data storytelling and engineering experiment. It explores how Jakarta has been portrayed in the news over two years—and what careful data processing can reveal about the attention those stories receive.

Watch the film (Indonesian) Explore my portfolio ↗
PERSONAL PROJECT · NOT AN OFFICIAL GOVERNMENT SERVICE
What the published film covers
1 city
Jakarta
8 themes
tracked in the film
2 years
Nov 2024 – Oct 2026
2 languages
Indonesian & English sources
690.828
articles in the film snapshot
Two layers, one experience

Complex work behind the scenes. A simple story in your browser.

01 / NEWS PROCESSING

Jakarta News Intelligence

Articles are discovered through RSS feeds, sitemaps, and direct crawling. GDELT provides a supplementary discovery index for finding stories and checking coverage. Records are cleaned, linked, classified, analyzed, and verified.

RSS + CRAWLING + GDELT → ANALYSIS → VERIFICATION
02 / THE PUBLISHED EXPERIENCE

A 730-day snapshot

The film presents precomputed data as an interactive story. Charts and figures come from story.json; they are not recalculated or fetched from news websites when a visitor opens the page.

PROCESSED DATA → STATIC JSON → NEXT.JS → FILM
How a news article becomes a finding

From the original report to evidence you can inspect.

01 / 04

Discover the coverage

RSS feeds, sitemaps, and responsible crawling help find news articles. GDELT adds a supplementary discovery index and a way to check coverage gaps.

RSS & sitemapsNews crawlingGDELT index
02 / 04

Clean and connect articles

Extract the text, normalize dates and locations, collapse duplicates, and group reporting on the same real-world event.

ExtractionMinHashEvent clustering
03 / 04

Understand the context

Multi-stage NLP identifies topics, Jakarta relevance, sentiment, and entities. Straightforward cases stay local; uncertain ones can receive an LLM review.

GLiNER2LLM reviewMulti-label NLP
04 / 04

Test and tell the story

Statistical checks and article evidence support the findings. A precomputed data export lets the film tell its story without running a crawler or AI model in the browser.

StatisticsEvidence checksStatic JSON
The engineering behind it

These components support the data workflow, not the film’s page load. The technical pages explain the processing decisions in more depth.

Respecting news sources

Responsible discovery and retrieval follow robots.txt, rate limits, and publisher access policies.

httpx · Crawl4AI · Trafilatura

Keeping the evidence

Source articles, labels, and event groups remain separate from the search index, so each finding can be traced to its origin.

PostgreSQL · pgvector · Elasticsearch

Using AI selectively

Agents handle contextual decisions, while fetching, deduplication and aggregation use reproducible code.

LangGraph · GLiNER2 · LLM

Delivering a lightweight film

Analysis is exported as JSON and rendered by Next.js. The visitor does not trigger a crawl or an LLM request.

Python · JSON · Next.js
An important distinction

The film measures news coverage, not the city’s condition directly. More flood reports do not necessarily mean worse flooding. International media make up a smaller sample, and missing weeks are never treated as zero.

More projects

There is more to explore.

Jakarta, 730 Hari is one of several projects in my personal portfolio. You can find the others on my main website.

Explore my portfolio ↗
Sources & attribution

The list below shows some outlets represented in the published film snapshot. News discovery uses RSS, sitemaps, responsible crawling, and GDELT as a supporting index. Each article remains the work of its original publisher.

Indonesian outlets
ANTARAKompasBisnis IndonesiaKoran JakartaLiputan6BeritaSatuJPNNOkezoneJawa PosCNN IndonesiaTribunnewsTempoRepublika
and other Indonesian publishers · 677.068 articles in the film snapshot
International outlets
The StarAsia News NetworkXinhuaCNAThe Straits TimesNikkei AsiaVietnamPlusArab News
and other international publishers · 13.760 articles in the film snapshot
News discovery index
The GDELT Project ↗
Geographic boundary reference
BAKOSURTANAL, 1:250,000 scale
Headlines belong to their original publishers. Copyright for the underlying articles remains with each publisher.
← Back to the filmAll projects ↗