A responsive weather dashboard built with React and Vite. It provides current conditions, a five-day forecast, U.S. weather alerts, and an animated radar map.
This repository follows Taylor Creative Development Standards v0.2.
Before beginning work, read:
PROJECT_STATUS.mdfor the active handoffPROJECT_CHARTER.mdfor the current repository scope and strategic directionCORE_PRINCIPLES.mdfor product, user, business, and engineering judgmentENGINEERING_HANDBOOK.mdfor the standard workflowROLE_ASSIGNMENTS.mdfor authority and responsibilitiesAGENTS.mdfor repository-specific operating instructions
GitHub Issues are the authoritative source for approved implementation work.
- Current conditions for the selected location
- City and ZIP search through Open-Meteo geocoding
- Browser geolocation fallback with a saved last location
- Five-day forecast with daily and hourly detail
- U.S. weather alerts from the National Weather Service
- Animated radar map
- Primary provider: MapTiler Weather SDK
- Fallback provider: RainViewer when
VITE_MAPTILER_KEYis not set
- GitHub Pages deployment through GitHub Actions
- React 18
- Vite
- MapTiler SDK and MapTiler Weather
- Leaflet / React Leaflet for the RainViewer fallback
- Open-Meteo for forecast and geocoding
- National Weather Service for U.S. alerts
- GitHub Pages for hosting
Install dependencies:
npm ciCreate a local environment file:
cp .env.example .envAdd your MapTiler key:
VITE_MAPTILER_KEY=your_maptiler_key_hereStart the dev server:
npm run devBuild for production:
npm run buildPreview the production build:
npm run previewThe app uses VITE_MAPTILER_KEY for the primary animated radar map. This key is browser-exposed by design because the app is static and hosted on GitHub Pages.
Restrict the key in MapTiler Cloud to approved referrers, such as:
http://localhost:*http://127.0.0.1:*- The production GitHub Pages URL for this repo
If the key is missing, the app automatically falls back to RainViewer radar.
The app deploys to GitHub Pages from main using .github/workflows/deploy-pages.yml.
The GitHub Actions build expects VITE_MAPTILER_KEY as either a repository variable or secret:
VITE_MAPTILER_KEY: ${{ vars.VITE_MAPTILER_KEY || secrets.VITE_MAPTILER_KEY }}Recommended setup:
- Open the repository settings in GitHub.
- Go to Settings -> Secrets and variables -> Actions -> Variables.
- Add a repository variable named
VITE_MAPTILER_KEY. - Push to
mainor manually run the Pages workflow.
MapTiler radar uses a lighter street basemap for better map detail and readability. The radar panel supports three playback windows:
Next 6hNext 24hFull forecast
The default is Next 6h so the animation does not unexpectedly run through the full multi-day forecast.
- Forecast and geocoding: Open-Meteo
- U.S. alerts: National Weather Service API
- Primary radar: MapTiler Weather
- Fallback radar: RainViewer