Sakuna is a free, real-time Philippines disaster map that tracks earthquakes, typhoons, volcanic activity, wildfires, and floods on a single live dashboard. It pulls from six independent data sources, normalizes everything into a unified severity-scored feed, and refreshes every 15 minutes. No ads, no paywall, no login.

When something happens, the only question that matters is simple: what is it, and is it near me? Sakuna is built to answer exactly that. -- the whole idea

01 . why this existsA calm signal in a noisy emergency

The Philippines gets hit by an average of 20 typhoons per year and sits on the Pacific Ring of Fire. When disaster strikes, people scramble across PAGASA, PHIVOLCS, USGS, and social media for updates. Sakuna consolidates those sources into one Philippines disaster map with a four-tier severity system so you can see what matters in one place.

It was built by Tom Tokita, an AI operations architect based in Manila, as a public-good utility for the Filipino community. It is deliberately not a news site, not a forecast, and not an alerting authority. It is a fast, honest view of the public data, with a plain-language read on what each event means, and a perimeter tool to filter by distance from where you are.

02 . data sourcesSix public feeds, one boundary

Every source is filtered to the Philippine geographic boundary (116-127E, 4.5-21.5N), normalized into a single event shape, and scored for severity. Attribution stays with each originating agency.

  • USGS (United States Geological Survey) -- earthquake data via the FDSNWS API. Magnitude 2.0+ events with depth, felt reports, community intensity, Modified Mercalli, alert level, tsunami flag, and review status.
  • NASA EONET (Earth Observatory Natural Event Tracker) -- active volcanic events, wildfires, and severe storms detected by satellite imagery. Multi-geometry support for events that move over time.
  • GDACS (Global Disaster Alerting Coordination System) -- multi-hazard alerts with three-tier severity scoring (green, orange, red) for earthquakes, tropical cyclones, floods, droughts, wildfires, and volcanic eruptions.
  • NASA FIRMS (Fire Information for Resource Management System) -- near-real-time fire hotspot detection from VIIRS NOAA-20 and MODIS satellite instruments. Brightness temperature, fire radiative power, and detection confidence per hotspot.
  • PAGASA (Philippine Atmospheric, Geophysical and Astronomical Services Administration) -- Philippine typhoon bulletins and tropical cyclone signal warnings. Parsed from the official severe weather bulletin page during active storms.
  • Open-Meteo -- current precipitation data for 20 monitoring cities across the Philippines. Free weather API, no authentication required.

03 . hazard typesFive event categories

IconTypeSourceWhat it tracks
SeismographEarthquakeUSGS, GDACSSeismic events M2.0+ within the Philippine boundary. Depth, magnitude type, felt reports, and Modified Mercalli Intensity when available.
SpiralTyphoonPAGASA, GDACSActive tropical cyclones with signal numbers, wind speed, and gust data. PAGASA bulletins scraped during active storms.
ConeVolcanoNASA EONETElevated volcanic activity detected by satellite. Includes SO2 emissions and alert levels when reported.
FlameFireNASA FIRMSSatellite-detected fire hotspots from VIIRS and MODIS instruments. Brightness temperature (K) and fire radiative power (MW) indicate intensity.
WaveFloodGDACSFlood alerts for river basins and low-lying areas. Severity derived from GDACS alert color (green, orange, red).

04 . severityFour tiers, colour means data, never decoration

Severity is the only thing that carries colour on Sakuna. Everything else stays monochrome, so a red marker always means one thing: pay attention.

LevelEarthquakeTyphoonFireGDACS Alert
LowBelow M4.0Signal #1Low confidence
ModerateM4.0 to 4.9Signal #2Nominal confidenceGreen
HighM5.0 to 5.9Signal #3High confidenceOrange
CriticalM6.0+Signal #4 to 5Red

Severity colors appear on map markers, event cards, and the detail view. Critical events pulse on the map and trigger the alert banner. Impact radius estimates are approximate, based on magnitude, wind speed, or fire intensity.

05 . how it worksA serverless pipeline that costs nothing to run

The architecture runs entirely on the Cloudflare free tier with no traditional server. A Cloudflare Worker fires every 15 minutes, fetches data from six public APIs (USGS FDSNWS, NASA EONET, GDACS RSS, NASA FIRMS CSV, PAGASA HTML, and Open-Meteo), filters to the Philippine bounding box (116-127E, 4.5-21.5N), normalizes each event into a unified schema, scores severity, and writes the result to Cloudflare R2 object storage. The frontend is a static site on Cloudflare Pages that polls the Worker endpoint every 30 seconds.

StepWhat happens
01 . pollThe Worker hits all six sources every 15 minutes.
02 . filterEvents outside the PH bounding box are dropped.
03 . normalizeEach source's format maps to one common event shape.
04 . scoreEvery event gets one of four severity tiers.
05 . serveResults are stored as JSON in R2; the map refreshes every 30 seconds.

No framework, no build step, no database. The entire frontend is vanilla HTML, CSS, and JavaScript. Fonts are self-hosted. The location search runs against a bundled 148-city Philippine gazetteer with no external geocoding API. Impact radii and affected-city lists are computed client-side using haversine distance.

06 . built withThe full stack

LayerTechnologyRole
Data pipelineCloudflare WorkersCron-triggered poller, fetches 6 APIs every 15 minutes
StorageCloudflare R2Object storage for events.json and meta.json
FrontendCloudflare PagesStatic site hosting with edge caching and custom domain
MapLeaflet 1.9 + Carto basemapsInteractive map with light/dark tile swap
FontsSource Serif 4 + JetBrains MonoSelf-hosted, same typography as tokita.online
AI toolingClaude Code (Anthropic)Coding assistant used to build the Worker, frontend, deploy pipeline, and security hardening
DesignClaude (Anthropic)UI/UX design system, component architecture, responsive layout
SecurityNuclei + OWASP ZAPSubdomain vulnerability scanning and header auditing

Total infrastructure cost: $0/month. The entire stack runs within Cloudflare's free tier limits. No server provisioning, no database, no third-party SaaS dependencies beyond the data source APIs themselves.

07 . proximityHow close is it to me?

Search a city or province, or use your device location, and Sakuna drops a marker and draws an adjustable perimeter ring on the map. Slide the radius from 25 to 500 km and the feed re-sorts by distance, dims everything outside your ring, and tells you exactly how many events (and how many high/critical) fall inside it. It is the fastest way to turn a national map into a personal one.

Distance calculations use the haversine formula against a bundled 148-city Philippine gazetteer covering all 17 administrative regions plus BARMM, from Metro Manila to Batanes. No external geocoding API needed.

08 . coverageBatanes to Tawi-Tawi

Sakuna covers the entire Philippine archipelago from Batanes (20.4N) to Tawi-Tawi (5.0N), spanning 116E to 127E longitude. Events outside this boundary are excluded. The location search covers 148 cities and provincial capitals from Metro Manila to the BARMM region.

09 . faqFrequently asked

Is Sakuna affiliated with PAGASA or PHIVOLCS?

No. Sakuna is an independent, non-commercial project built by Tom Tokita. It aggregates publicly available data from government and scientific agencies but is not affiliated with, endorsed by, or funded by any of them.

How often is the data updated?

The data pipeline polls all sources every 15 minutes. The browser dashboard checks for new data every 30 seconds. Satellite-based sources (FIRMS, EONET) depend on orbital pass schedules and may lag by 1 to 3 hours.

What earthquake magnitude does Sakuna track?

Magnitude 2.0 and above within the Philippine geographic boundary, sourced from the USGS Earthquake Hazards Program (FDSNWS API).

Are the impact radii accurate?

No. Impact radii are rough estimates based on magnitude, wind speed, or fire intensity. They indicate potential reach, not confirmed damage zones. Always follow official agency advisories for evacuation and safety decisions.

Who built Sakuna?

Tom Tokita is an AI operations architect based in Manila, Philippines. He is the president of Aether Global Technology Inc., a Salesforce consulting partner serving enterprise clients across aviation, banking, and logistics. Sakuna is one of his public-good projects, built on a zero-cost Cloudflare serverless stack to demonstrate cross-API data aggregation, real-time geospatial visualization, and production-grade cron-driven data pipelines. The entire system (6 international data sources, 15-minute polling cycle, unified event schema, interactive Philippines disaster map) runs on Cloudflare Workers and R2 with zero server costs. The project was built with Claude Code by Anthropic as the AI coding assistant.

Can I use Sakuna data?

The aggregated event feed is available at /data/events.json and is licensed under CC0 1.0. Attribution is appreciated but not required. Upstream data is subject to the terms of each originating agency (USGS, NASA, GDACS, PAGASA).

10 . disclaimerImportant

// not an emergency service

Sakuna is an awareness tool, not an emergency service. In a real emergency, follow official advisories from PAGASA, PHIVOLCS, and your local DRRMO, and call the appropriate hotline. Never make evacuation or safety decisions based on this map alone.

Built in Manila by Tom Tokita, on a zero-cost Cloudflare serverless stack. Sakuna is a working demonstration of cross-API data aggregation, real-time geospatial visualization, and cron-driven pipelines.