If you've worked with Drupal long enough, you've faced this decision: Do I build a custom module for this or can ECA handle it? Use ECA When The logic is workflow-based Non-developers need to maintain it ECA workflows live in the admin UI. Your client or site admin can read, modify, and debug them without touching code. A custom module cannot offer that. Speed matters A workflow that would tak
The first article on this blog explained how it was built in 30 minutes with Claude Code. Naturally, a blog needs comments. Same constraints: no database, no external dependencies, no Disqus tracking visitors. Just PHP + JSON files. Built in one session with Claude Code — the interesting part wasn't the code, it was the security audit that followed. A comment system without a database seems trivia
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