Kompas Data
Back to Portfolio
Data Journalism Platform2021 – 2024Software Engineer & UI/UX Designer

Kompas Data

A large-scale data journalism and visualization platform serving millions of readers across Indonesia.

ReactVue.jsNode.jsPostgreSQLDockerKubernetes
Overview

About This Project

Kompas Data is the flagship data journalism platform of Kompas Gramedia — one of Indonesia's largest media conglomerates. The platform bridges the gap between raw data and compelling storytelling, enabling journalists and editors to publish data-rich articles complete with interactive charts, infographics, and embeddable visualizations that reach millions of readers every month.

I joined the team as a Software Engineer & UI/UX Designer in 2021, initially tasked with rebuilding the frontend rendering layer. Over three years, my scope expanded to include system architecture, design systems, and cross-team collaboration with the editorial and data science teams.

Challenge

The Problem

The core challenge was performance. Kompas Data articles routinely contained 10–20 interactive charts rendered on a single page. The previous system used a monolithic render approach — every chart was rendered client-side on page load, resulting in load times of 8–12 seconds on mid-range mobile devices.

Beyond performance, there was a UX gap: journalists were not technically equipped to build chart configurations manually. The existing tooling required JSON configs written by hand, which created a bottleneck where every article depended on a developer. Scaling content production was impossible under that model.

The team also lacked a unified design system. Each section of the platform had evolved independently, resulting in 4–5 different button styles, inconsistent typography, and conflicting color tokens across the codebase.

Solution

How We Solved It

I led a three-phase improvement initiative:

Phase 1 — Performance: Replaced the monolithic chart bundle with lazy-loaded, individually code-split chart components. Charts only initialized when they entered the viewport (Intersection Observer API). This reduced initial page load from 8s to under 2s on 4G connections.

Phase 2 — Editor Tooling: Designed and built a no-code chart configuration interface — a drag-and-drop WYSIWYG tool that let journalists configure bar, line, pie, and map visualizations without writing code. Config outputs were stored as JSON and rendered by a standardized chart renderer on the article page.

Phase 3 — Design System: Consolidated all UI patterns into a shared component library using Vue.js and documented in Storybook. This became the foundation for two other internal KG Media products.

Features

Key Capabilities

📊

Lazy-loaded Interactive Charts

Each chart component loads only when scrolled into view, dramatically reducing initial page weight and time-to-interactive.

🎨

No-Code Chart Builder

A drag-and-drop editor allowing non-technical journalists to create and publish data visualizations independently.

🧩

Unified Design System

Shared Vue component library with documented tokens, patterns, and guidelines used across 3 internal products.

👁️

Real-time Preview

Chart configurations previewed live in the editor as changes are made, with mobile/desktop responsive views.

🔗

Embed & Share

Each visualization is embeddable via iframe with automatic responsive sizing for third-party publications.

📈

Analytics Integration

Per-chart engagement metrics tracked — scroll depth, hover time, and interaction events reported to the editorial dashboard.

Technical

Under the Hood

Frontend

React and Vue.js were used side-by-side: React for the article rendering layer and Vue.js for the CMS editor tools. This was a deliberate migration strategy — Vue.js was already established in the codebase, and we introduced React incrementally as new features were built.

Backend & API

Node.js REST API served chart data and article configs. PostgreSQL stored structured content metadata, while chart data payloads were cached in Redis to minimize database reads for high-traffic articles.

Infrastructure

Fully containerized with Docker, orchestrated via Kubernetes on GCP. CI/CD pipelines ran on GitLab CI, with automated preview deployments for every pull request.

Results

Impact & Outcomes

Page load time reduced from ~8s to <2s on 4G — a 75% improvement

Editorial chart publication rate increased 4x after the no-code builder launched

Design system adopted by 2 additional internal KG Media products

Monthly active readers grew from 800K to 2.4M during the engagement

Zero-downtime deployments achieved across 3 years of continuous development

Reflection

What I Learned

This project taught me that performance is a feature — not an afterthought. The most impactful engineering decisions we made were invisible to readers: they simply got a faster, smoother experience. I also learned how valuable it is to design tools for non-technical users; the no-code chart builder unlocked editorial velocity that engineering alone could never have provided.

Other Projects