Building a Search Bar for Your Firefox New Tab Extension A search bar is the highest-ROI feature for any new tab extension. Users type queries dozens of times per day — if your extension can save them from navigating to google.com first, that's real value. Here's how I built the search bar in the Weather & Clock Dashboard extension. <form id="search-form" class="search-form" role="search"> <di
Testing Firefox Extensions with Playwright: End-to-End Testing Guide Extension testing is one of those things everyone knows they should do but few actually do. I've been using Playwright for end-to-end tests on the Weather & Clock Dashboard extension and it's changed how I think about extension quality. Unit tests don't cover the biggest failure modes: Does the extension actually load in Firefo
Keyboard Shortcuts in Firefox Extensions: A Complete Guide Keyboard shortcuts make extensions feel native. A new tab extension that users can control without clicking feels much more polished. Here's how to add them to your Firefox extension. { "manifest_version": 2, "commands": { "toggle-dark-mode": { "suggested_key": { "default": "Ctrl+Shift+D", "mac": "Command+Sh
How I Used GitHub Actions to Auto-Publish to AMO on Every Release Manually uploading extension files to AMO (Mozilla's Add-On Observatory) is tedious. After the fifth time forgetting to increment the version number, I automated it with GitHub Actions. Here's exactly how I set up the pipeline for the Weather & Clock Dashboard extension. Trigger on new GitHub release Validate the manifest version
How to Use the OpenWeatherMap API in a Firefox Extension Weather data is one of the most commonly requested features in new tab extensions. The Weather & Clock Dashboard uses OpenWeatherMap's free tier. Here's a complete guide. Sign up at openweathermap.org — free tier allows 60 calls/minute, 1M calls/month Go to API keys in your account dashboard Copy the default API key (or create a new one) K
Firefox Extension Manifest V3 vs V2: What Actually Changed If you've been following Chrome's controversial Manifest V3 migration, you might be wondering: does Firefox have the same MV3? The answer is: yes and no. Firefox has its own implementation of Manifest V3, and it's meaningfully different from Chrome's. Firefox MV3 supports both MV2 and MV3 extensions Firefox's MV3 is less restrictive than
Handling Offline Mode in Firefox Browser Extensions When building extensions that depend on network data — like my Weather & Clock Dashboard — offline handling is critical. Users notice immediately when your extension shows stale data or broken UI. Browser extensions run at browser startup. If the user is on a train, airplane, or just has spotty WiFi, your fetch calls will fail. Without proper h
How I Automated Firefox Extension Screenshots for AMO Listings One of the most tedious parts of publishing to Mozilla's Add-On Observatory (AMO) is creating consistent, high-quality screenshots. After publishing the Weather & Clock Dashboard extension, I wanted a repeatable process for capturing screenshots automatically. AMO requires screenshots in specific dimensions (typically 1280×800 or sim