Browser-based weather radar and alerts. Pulls live data from the NWS and other public sources: radar, warnings, surface obs, lightning, and more.
Project rename: This project was renamed from StormTrack Pro to Vortex Radar.
You can view the live version here: vortexradar.snapsera.com
- NEXRAD radar β Level 2 & Level 3 from any US NEXRAD site. Reflectivity, velocity (with dealiasing), and a bunch of other products. National composite, looping, and a data inspector.
- 24/7 Live Mode β Autonomous weather broadcast mode that rotates between SPC outlooks, active severe warnings, CONUS radar, local spotlight segments, storm reports, and recent earthquakes.
- Live commentary + soundtrack β Typewriter-style commentary with alert-first callouts, plus built-in background music controls for stream-style viewing.
- National MRMS radar loop β CONUS base reflectivity from NOAA nowCOAST with multi-frame playback and smooth endpoint dwell for cleaner animation.
- Alerts β Warnings, watches, advisories drawn on the map with polygons and full text. SPC watches, MDs, outlooks. Ticker along the bottom, plus audible/voice notifications.
- Lightning β Real-time strike plotting.
- METARs β Station models from ASOS/AWOS sites.
- Surface fronts β Frontal boundaries and pressure systems.
- Hurricanes β NHC tracks and forecast cones.
- SPC β Outlooks, watches, mesoscale discussions.
- Weather stations β Upper-air soundings and station info.
- Radio β NWR and scanner streams.
- Drawing β Freehand annotation on the map.
- Screenshots β Save any region of the map.
- 7-Day Forecast β City/state/zip, current conditions, hourly out to 72h, day-by-day text forecasts.
- Core platform maturity β 90%
π©π©π©π©π©π©π©π©π©β¬ - Live weather coverage β 85%
π©π©π©π©π©π©π©π©β¬β¬ - UI/UX polish β 70%
π©π©π©π©π©π©π©β¬β¬β¬ - Desktop packaging + release flow β 65%
π©π©π©π©π©π©β¬β¬β¬β¬ - Performance and optimization pass β 60%
π©π©π©π©π©π©β¬β¬β¬β¬
- NEXRAD radar + national loop β 100%
π©π©π©π©π©π©π©π©π©π© - Alerts + polygons + ticker/voice β 90%
π©π©π©π©π©π©π©π©π©β¬ - 24/7 Live Mode engine β 80%
π©π©π©π©π©π©π©π©β¬β¬ - Forecast experience (hourly + 7-day) β 75%
π©π©π©π©π©π©π©β¬β¬β¬ - Lightning/METAR/fronts/SPC overlays β 80%
π©π©π©π©π©π©π©π©β¬β¬ - Hurricanes and tropical tools β 70%
π©π©π©π©π©π©π©β¬β¬β¬ - Desktop app + updater reliability β 65%
π©π©π©π©π©π©β¬β¬β¬β¬
- Multi-region camera expansion + smarter rotation β 60%
π©π©π©π©π©π©β¬β¬β¬β¬ - Live Mode segment customization controls β 50%
π©π©π©π©π©β¬β¬β¬β¬β¬ - Map performance tuning for low-end GPUs β 40%
π©π©π©π©β¬β¬β¬β¬β¬β¬ - Mobile responsiveness improvements β 30%
π©π©π©β¬β¬β¬β¬β¬β¬β¬ - Better onboarding/help and discoverability β 30%
π©π©π©β¬β¬β¬β¬β¬β¬β¬ - Testing/QA automation coverage β 20%
π©π©β¬β¬β¬β¬β¬β¬β¬β¬
app/ Source, organized by feature
alerts/ Alert fetching, parsing, rendering, polygons
core/ App shell, map, menus, popups, clock, entry point
devtools/ Dev/testing tools
draw/ Drawing/annotation
forecast/ 7-day forecast modal
hurricanes/ Tropical cyclone tracks
lightning/ Lightning data
metars/ METAR parsing and station models
radar/ NEXRAD decoding, plotting, colormaps, looping, inspector
radio/ NWR / scanner streams
screenshot/ Map capture
spc/ SPC outlooks, watches, MDs
surface_fronts/ Fronts overlay
timezones/ Timezone display
ui/ Shared UI (ticker, audible alerts, voice, fullscreen)
weather_station/ Station info, upper-air data
data/ Static data and palettes
dist/ Build output
images/ Icons and SVGs
lib/ Vendored libs (bzip2)
scripts/ Build scripts
styles/ CSS source (concatenated at build)
tools/ Changelog, bundle-size utils
- Mapbox GL JS for the map
- Browserify + brfs for bundling
- WebGL with custom GLSL shaders for radar rendering
- All radar decoding happens client-side β bzip2 decompression, NEXRAD message parsing, the whole thing
- Express serves the app (
server.js, port 3000)
npm install
npm run buildnpm run build concats CSS, bundles JS with Browserify, and minifies with UglifyJS.
npm run start # Express server on port 3000
npm run dev # build + startThen open http://localhost:3000.
This project can build and publish a Windows desktop app with auto-updates through GitHub Releases.
- Install dependencies:
npm install- Create a GitHub Personal Access Token (classic
reposcope is easiest), then save it once on Windows:
setx GH_TOKEN "YOUR_GITHUB_TOKEN"- Restart Cursor/terminal after running
setx.
npm run desktop:distOutput goes to:
release-build/win-unpacked/(unpacked app)release-build/Vortex Radar Setup.exe(installer)
Run this when you want users to get an update:
npm run desktop:publishWhat it does automatically:
- Bumps patch version (
1.0.x -> 1.0.x+1) - Builds web assets
- Builds desktop installer
- Uploads release artifacts to GitHub (
snapsera/vortexradar)
npm run desktop:preflightThis checks token + repo permissions and also bumps patch version.
- Make your code changes
- Run
npm run desktop:publish - Verify new release appears on GitHub
- Open installed app and confirm update prompt appears
- "GitHub Personal Access Token is not set"
- Reopen terminal/Cursor after
setx - Verify token exists with:
echo $env:GH_TOKEN(PowerShell)
- Reopen terminal/Cursor after
EPERM ... bundle.jsbuild error- Close running app/build processes
- Delete stale temp files:
Remove-Item .\dist\bundle.js.tmp-browserify-* -Force -ErrorAction SilentlyContinue
- Re-run publish
- Security reminder π
- Never paste your token in chat/screenshots/terminal logs
- If exposed, revoke and create a new token immediately
Built on top of AtticRadar by SteepAtticStairs. A lot of the core architecture, NEXRAD decoding, and WebGL rendering here started from or was heavily inspired by that project. Go check it out.
Not currently published under an open-source license. All rights reserved.





