DEV Community

Weather Clock Dash
Weather Clock Dash

Posted on

I Built a Free Firefox New Tab Extension with Live Weather, World Clocks, and a Privacy Focus

I built Weather & Clock Dashboard after being frustrated with Firefox new tab options — either cluttered with news I didn't want or blank and useless. I wanted something actually useful on every new tab.

What it does

Live weather: Current conditions + 3-day forecast using your geolocation. Temperature in °C/°F, weather icons, humidity, wind speed. Powered by Open-Meteo API — free, no API key, no data sold.

World clocks: Pin up to 6 city clocks. See what time it is in Berlin, Tokyo, or New York without opening a separate app. Useful for remote teams spread across time zones.

Search bar: Clean search box defaulting to your preferred engine (Google, DuckDuckGo, Bing, or custom URL).

Dark/light mode: Follows system preference or manual toggle.

Why I built it for Firefox

Firefox is my daily driver. I built this as a Firefox WebExtension (also called Firefox Add-On) for a few reasons:

  1. Mozilla's review process is stricter — AMO requires unobfuscated source code and actual human review. This matters for privacy-conscious users.
  2. Firefox keeps MV2 extensions alive. Chrome is forcing MV3 which removes key capabilities; Firefox keeps both.
  3. The WebExtensions API is genuinely cross-browser, but Firefox's implementation is more complete.

Privacy

This was non-negotiable:

  • Geolocation used only to fetch weather
  • Weather requests go directly to Open-Meteo (not through any intermediary)
  • Clock cities stored in browser local storage only
  • No analytics, no tracking, no third-party scripts

Full permissions list on AMO: just geolocation and storage.

Technical stack

Pure HTML/CSS/JS — no framework, no build system, no bundler. I wanted the extension to be:

  • Easy to audit (the code you see is the code that runs)
  • Fast to load (no React hydration, no webpack chunking)
  • Easy to maintain (no dependency rot)

The weather API is Open-Meteo: open-source, free, GDPR-compliant, based in Europe. No API key required.

What I learned

Service worker limitations in MV3: The transition from persistent background pages (MV2) to service workers (MV3) means you can't store state in memory across browser restarts. I store everything in browser.storage.local now.

Geolocation in new tab pages: New tab pages in Firefox are treated as privileged pages — they have access to navigator.geolocation directly without needing an explicit permission prompt in the extension manifest (beyond the geolocation permission declaration). This is different from content scripts.

Open-Meteo's forecast API: The free tier includes hourly forecasts and a daily forecast with min/max temperature, precipitation probability, and weather codes. The weather codes map to WMO standard codes, which have a well-defined icon mapping.

Install and source

If you try it, feedback is welcome — especially for features that would be useful without adding clutter.

Top comments (0)