---
title: "Gempa - Earthquake Monitoring Dashboard"
url: "https://ridwaanhall.com/projects/gempa-earthquake-monitoring-dashboard"
markdown: "https://ridwaanhall.com/projects/gempa-earthquake-monitoring-dashboard.md"
summary: "A FastAPI earthquake monitor for Indonesia that normalises BMKG's earthquake and tsunami feeds into a fast web UI and an open API."
---

# Gempa - Earthquake Monitoring Dashboard

> A FastAPI earthquake monitor for Indonesia that normalises BMKG's earthquake and tsunami feeds into a fast web UI and an open API.

- Category: web-development
- Status: Deployment Released
- Started: February 6, 2026
- Built with: FastAPI, Python, Pydantic, Jinja2, Leaflet, uv, Ruff, pytest, Vercel
- Live: https://gempa.rone.dev
- Source: https://github.com/ridwaanhall/gempa

## About

### The problem

Indonesia records earthquakes almost daily, but BMKG publishes them as raw feeds. In the minutes after a tremor people want to know where it was, how strong, and whether a tsunami is possible.

### The approach

Gempa is a FastAPI app that fetches the official BMKG feeds on the server, normalises them, and re-exposes them under /api/v1 so the upstream address never reaches the browser. The web UI is server-rendered with Jinja2 for a fast first paint, then refreshes live from the API. Narratives are sanitised before display.

- Latest felt earthquake, and about 200 automatic detections with filters, a map and per-event revision history.
- Felt and M5+ earthquakes with shakemaps, analysis images and BMKG narratives.
- Tsunami bulletins grouped per earthquake, and a catalogue of damaging earthquakes since the 1920s.
- A seismicity map with 3-month and 5-year catalogues, stations and fault lines, on a vendored Leaflet.

### The result

Live at gempa.rone.dev with an open JSON API documented at /docs. The interface uses a restrained neumorphic design called Seismic Clay, and the upstream is mocked in tests so they need no network.

## Features

- **Realtime Detections**: Around 200 automatic detections with filters, a map and revision history.
- **Felt and M5+ Events**: Shakemaps, analysis images and BMKG narratives for announced earthquakes.
- **Tsunami Bulletins**: Warnings grouped per earthquake, with timeline, zones and observed waves.
- **Seismicity Map**: Catalogues, stations and fault lines on Leaflet.
- **Open API**: Documented JSON endpoints under /api/v1, with the upstream kept server-side.

## Tags

Django, Python, BMKG, earthquake-monitoring, leaflet, tailwind, responsive-ui, vercel, datatables, maps

## Elsewhere

- This page for people: https://ridwaanhall.com/projects/gempa-earthquake-monitoring-dashboard
- Index of every page as Markdown: [llms.txt](https://ridwaanhall.com/llms.txt)
