A Typhoon Tracker Built in One Sleepless Night Is Now Open for Anyone to Harden
Disaster-information tools often fail exactly when they are needed most because they depend on databases, auth, or ad infrastructure that collapses under load or connectivity loss. This tracker’s architecture—a single stateless Worker, pure functions, and cache merging instead of overwriting—is a replicable pattern for any crisis dashboard where uptime is non-negotiable and the audience is panicked, mobile, and bandwidth-constrained.
Typhoon Bavi Tracker puts Chinese, Japanese, American, and Taiwanese forecast models on one MapLibre GL map so the convergence—or divergence—of predicted landfall is immediately visible. A city impact countdown estimates arrival time based on wind speed and vector math, while a shareable deep link focuses the map on a specific city. Real-time RSS news aggregation and a static emergency guide round out the tool, which runs entirely on a Cloudflare Worker with no database and a deliberate bias toward simplicity so it stays up when infrastructure around it fails.
The creator, HiSt, built it after finding no single source that answered three urgent questions during a typhoon: where it is, how long until it hits, and what to do now. The code is intentionally minimal—pure functions for normalization and impact calculation, a Worker that only proxies and caches, and a strict rule that a bad data fetch must never overwrite a good cache snapshot.
The repository is now open for contributions, with a task list prioritized by human impact over technical novelty. Adding a city is a one-line change; multi-typhoon support, localized shelter guides, PWA offline caching, and i18n are all on the roadmap. The project’s open-source rationale is blunt: disaster information should not be locked in anyone’s server, and a community can sustain what one person’s late-night burst of energy cannot.
Overlaying multiple forecast models turns disagreement from a source of confusion into a signal: tightly clustered lines indicate high confidence, while scattered lines are a warning to prepare for a wider range of outcomes.
The cache-merge strategy—where new data is added to a historical snapshot rather than replacing it—is a small design decision with outsized reliability implications for any tool that must function during infrastructure degradation.
Choosing a serverless Worker with no database is framed not as a cost-saving measure but as a reliability strategy: fewer moving parts mean fewer failure modes when the surrounding network is under stress.
The project’s contribution model explicitly values adding a city over swapping a framework, which inverts the usual open-source incentive structure that rewards technical sophistication over real-world utility.
The project draws praise for its speed and utility, though several people point to existing official typhoon trackers as alternatives. A recurring technical concern is a map-style loading bug, while others ask about the Amap API cost, the news aggregation method, and the Cloudflare Worker deployment. The build time of 2-3 hours with AI assistance sparks a brief exchange on how AI is reshaping productivity.
There's a bug, Style is not done loading. at cn._checkLoaded (maplibre-wqmL2Hxp.js:796:86493) at cn.addSource (maplibre-wqmL2Hxp.js:796:91133) at Yo.addSource (maplibre-wqmL2Hxp.js:800:109763) at Gt.setupLayers (index-C1flaEsg.js:2:6218) at index-C1flaEsg.js:107:3324 at s (index-C1flaEsg.js:2:5974)
Got it, I'll check after work. Probably an intermittent network issue. Gotta be a beast of burden for a while first [wilted]
There really is a bug crawling around [eye-rolling dog]
Nice idea, but I usually use https://zoom.earth/maps/wind-speed/ and https://typhoon.slt.zj.gov.cn/#/. It's not that you have no clue where the typhoon is, as you said. Can't people search anymore these days? Relying on AI is also a bad habit.