Logo Lanfrica

Abdelmalek05/weather-desktop-app

Domaine:

environment and energy

Type de record:

software
Créateur:
Abd
Hôte:
Cross-platform desktop weather app for 157 Algerian cities, in English, French, and Arabic. Electron + Next.js, no API key required. # Algeria Weather A cross-platform desktop weather app for Algeria, built with Electron and Next.js. Current conditions for **157 cities across all 58 wilayas**, in **English, French, and Arabic** (with full right-to-left layout), and a light/dark theme that remembers your choice. No API key, no account, no configuration — weather comes from Open-Meteo, which is free and keyless for non-commercial use. ## Screenshots | Light | Dark | |---|---| | | | | City search | Arabic (RTL) | |---|---| | | | ## Features - **157 Algerian cities**, searchable by city or wilaya name in any of the three languages - **Trilingual** — English, French, Arabic, with `dir="rtl"` and mirrored layout for Arabic - **Light and dark themes**, following your OS by default until you pick one - **Remembers your last city, language, and theme** between launches - Temperature, feels-like, humidity, wind, visibility, UV index, and precipitation probability - **Fully keyboard accessible** — the city search is an ARIA combobox with arrow-key navigation, and all motion respects `prefers-reduced-motion` - Responsive layout: two stat columns in a narrow window, four in a wide one - Auto-refreshes every 10 minutes ## Install Requires Node.js 20+. The repo contains **two npm packages** — the Electron shell at the root and the Next.js UI in `renderer/` — so install both: ```bash git clone github.com cd weather-desktop-app npm install cd renderer && npm install && cd .. ``` ## Development ```bash npm run dev ``` This compiles the Electron main process, starts Next.js on port 3000, waits for it, then launches Electron pointed at the dev server with DevTools open. UI changes hot-reload; changes under `electron/` need a restart. To work on the UI alone in a browser, `cd renderer && npm run dev`. There is no Electron bridge there, so the app keeps whatever the URL says and falls back to its defaults — every locale, including `/ar` and `/fr`, work …