// the find
DariusLukasukas/nextjs-weather-app
Apple Weather inspired web app with Mapbox and OpenWeather
A polished Apple Weather clone built on Next.js 16 and React 19, pulling data from OpenWeather and Mapbox. It's a showcase project — the kind of thing you build to learn Next.js Server Actions and API proxying, not to replace a production weather service. Looks good, works well within its scope.
The API key proxying via a Next.js route handler is done correctly — OPENWEATHER_API_KEY never reaches the client, map tiles are served server-side with proper Cache-Control headers. Server Actions fetching all five OpenWeather endpoints in parallel with Promise.all and revalidation caching is a clean pattern that avoids waterfalls. The component breakdown is sensible — one file per weather card, each self-contained. Next.js 16 + React 19 means this is tracking the actual current releases, not a year-old tutorial setup.
localStorage for saved cities means no cross-device sync and no persistence if the user clears browser storage — a non-issue for a demo, a real limitation if someone tries to use this daily. The multi-endpoint OpenWeather approach requires a paid plan (Developer tier), which the README mentions but buries; most people cloning this will hit a wall immediately on the free tier. No tests anywhere — not even a smoke test on the weather data transformation logic, which is the part most likely to break when OpenWeather changes a response shape. The Zustand store for cities is essentially a localStorage wrapper with extra steps; a simpler custom hook would do the same job with less indirection.