Menu

1 / 2

How I Built a Firefox New Tab Extension with Pure HTML/CSS/JS (No Frameworks)

DEV Community·Weather Clock Dash·6 months ago
#Nl5dOKmW
Reading 0:00
15s threshold

When I started building a new tab extension for Firefox, I made a deliberate choice: no npm, no webpack, no build pipeline. Just HTML, CSS, and vanilla JavaScript.

Here's what I learned.

The motivation

I wanted a new tab page that shows live weather, world clocks, and a search bar. Simple. But most extensions I found were either bloated with React+Redux or required API key signups.

I decided to build one myself. Clean, fast, zero tracking.

The architecture

The extension is a single newtab.html file with inline CSS and JS. No external dependencies. The whole thing loads in under 100ms.

Weather data : I use wttr.in , a free weather service that returns JSON without requiring an API key. Just fetch https://wttr.in/{city}?format=j1 and you get current conditions + 3-day forecast.

async function fetchWeather ( city ) { const resp = await fetch ( `https://wttr.in/ ${ encodeURIComponent ( city )} ?format=j1` ); const data = await resp . json (); return { temp : data . current_condition [ 0 ].…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.