A dependency-free weather app using the Open-Meteo API.
index.html- page structure and app entry pointcss/styles.css- responsive styling and light/dark themejs/app.js- city search, API requests, rendering, and fallback datamanifest.webmanifest- install metadata for supported browsersservice-worker.js- offline app-shell cacheicons/- local Hamo Weather app icons
Double-click Open Weather App.bat to launch the app in your default browser. You can also open index.html directly. An internet connection enables live forecasts; if the API is unavailable, the app displays the built-in Tokyo fallback.
The app remembers the last successfully searched location when the same browser tab is refreshed or resumed. Search accepts cities, towns, suburbs, estates, landmarks, and addresses. It checks OpenStreetMap address-level geocoding first to resolve smaller locations to precise coordinates, then falls back to Open-Meteo city geocoding. A newly opened tab requests the user's location for a local forecast; if location permission is denied or unavailable, it starts in Tokyo.
The data-source attribution is kept in a compact disclosure at the bottom of the app. OpenStreetMap attribution should not be removed when using its geocoding data.
Open the live site at https://hamidooh.github.io/weather-app/ over HTTPS in a supported browser. On desktop Chromium browsers, use the install icon in the address bar or the app's Install app button when it appears. On Android, open the browser menu and choose Install app or Add to Home screen. On iPhone/iPad, open the site in Safari, tap Share, then choose Add to Home Screen. After installation, the app hides its Install app button on future launches. The browser controls whether the native prompt is available; the website cannot force an installation or download.
The app shell can open offline after it has been visited, but live weather and location searches require an internet connection.
This project includes .github/workflows/deploy-pages.yml. Put the folder in a GitHub repository with a main branch and push it. The workflow deploys the repository root automatically; after the first successful run, the Pages URL is shown under the workflow's deployment environment.