A React + TypeScript weather app powered by the National Weather Service API. The app blends live forecasts, favorites, and side-by-side comparisons with visual storytelling for teams tracking conditions across the US.
- Geolocation-powered hourly + 7-day forecasts
- Search any US address (Census geocoder) and save favorites
- Comparison view for two locations
- Two data visualizations (hourly temperature trend + daily precipitation bar chart)
- Alerts summary and quick condition badges
- Responsive, WCAG-aligned UI with accessible states
- React + TypeScript + Vite
- Tailwind CSS + Shadcn-style UI components
- TanStack Query + tRPC (proxy layer to NWS + geocoder)
- Recharts for data visualization
- Vitest + Testing Library for tests
npm installnpm run devThis starts:
- Vite client on
http://localhost:5173 - tRPC server on
http://localhost:4000
npm run testserver/hosts a lightweight tRPC + Express API that calls:- National Weather Service API (points, hourly + daily forecasts, grid data, alerts)
- US Census Geocoder (search)
src/is the React UI with reusable UI primitives and feature components- State management uses TanStack Query with tRPC hooks and localStorage for favorites
- Weather API is accessed via a small server proxy for consistent headers and simpler client logic
- Google Places API is used for US-only location search (requires
GOOGLE_API_KEYin.env) - Forecast visuals focus on the next 12 hours + 7 days for clarity on mobile