<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Browser Extensions on Build in Public</title><link>https://build.ralphmayr.com/tags/browser-extensions/</link><description>Recent content in Browser Extensions on Build in Public</description><generator>Hugo</generator><language>en-us</language><copyright>©️ Ralph Mayr 2026</copyright><lastBuildDate>Fri, 12 Sep 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://build.ralphmayr.com/tags/browser-extensions/index.xml" rel="self" type="application/rss+xml"/><item><title>Firefox extensions (mostly) work on Firefox on Android as well</title><link>https://build.ralphmayr.com/posts/74-firefox-extensions-mostly-work-on-firefox-on-android-as-well/</link><pubDate>Fri, 12 Sep 2025 00:00:00 +0000</pubDate><guid>https://build.ralphmayr.com/posts/74-firefox-extensions-mostly-work-on-firefox-on-android-as-well/</guid><description>&lt;p&gt;A poketto.me Firefox user recently pointed out that Firefox on Android also supports browser extensions&amp;ndash; but that the poketto.me extension didn&amp;rsquo;t appear on Mozilla&amp;rsquo;s Add-Ons page there.&lt;/p&gt;
&lt;p&gt;Turns out: Any modern browser extension built on the standard APIs (Chrome, Firefox, Edge) can also run in Firefox on Android. But when publishing, you have to explicitly test and target Android.&lt;/p&gt;
&lt;p&gt;Technically, the extension &amp;ldquo;just works&amp;rdquo;&amp;mdash;as long as you&amp;rsquo;re not doing anything exotic with the APIs. But aesthetically, there&amp;rsquo;s one big caveat.&lt;/p&gt;</description></item><item><title>Your browser extension doesn’t necessarily need that many permissions</title><link>https://build.ralphmayr.com/posts/66-your-browser-extension-doesnt-necessarily-need-that-many-permissions/</link><pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate><guid>https://build.ralphmayr.com/posts/66-your-browser-extension-doesnt-necessarily-need-that-many-permissions/</guid><description>&lt;p&gt;The other week, I was building a neat little feature for the poketto.me browser extensions (Chrome, Firefox, and Edge): when you save a web page, the extension should capture not just the URL, but the entire content you&amp;rsquo;re looking at in that moment.&lt;/p&gt;
&lt;p&gt;🤨Why does this matter?&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re signed in on a page (say, with your New York Times subscription), poketto.me can capture the full article &amp;mdash; just as you, the paying subscriber, see it. Otherwise, poketto.me tries to fetch the article in the background&amp;hellip; but it will run straight into the paywall (see TIL #59).&lt;/p&gt;</description></item><item><title>Firefox and Chrome (finally!) support the same extension API (and so does Microsoft Edge)</title><link>https://build.ralphmayr.com/posts/61-firefox-and-chrome-finally-support-the-same-extension-api-and-so-does-microsoft-edge/</link><pubDate>Sat, 30 Aug 2025 00:00:00 +0000</pubDate><guid>https://build.ralphmayr.com/posts/61-firefox-and-chrome-finally-support-the-same-extension-api-and-so-does-microsoft-edge/</guid><description>&lt;p&gt;I hadn&amp;rsquo;t actually planned to build a Firefox extension for poketto.me. But among the first wave of &amp;ldquo;Pocket Converts&amp;rdquo; &amp;mdash; users who turned to poketto.me after reading about it as an alternative to Pocket &amp;mdash; several asked for a Firefox extension. So, I decided to do a quick technical feasibility check.&lt;/p&gt;
&lt;p&gt;As it turns out: The Chrome extension works in Firefox without a single code change!&lt;/p&gt;
&lt;p&gt;Apparently, there are a few APIs that Firefox doesn&amp;rsquo;t support (see:
&lt;a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs%29" target="_blank" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs)&lt;/a&gt;, but luckily, I didn&amp;rsquo;t rely on any of those.&lt;/p&gt;</description></item><item><title>Building a Chrome Extension is easier than I thought — but still a bit of a hassle</title><link>https://build.ralphmayr.com/posts/3-building-a-chrome-extension-is-easier-than-i-thought-but-still-a-bit-of-a-hassle/</link><pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate><guid>https://build.ralphmayr.com/posts/3-building-a-chrome-extension-is-easier-than-i-thought-but-still-a-bit-of-a-hassle/</guid><description>&lt;p&gt;To my surprise, building a Chrome Extension is &lt;em&gt;technically&lt;/em&gt; quite straightforward. You need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A bit of HTML (the popup UI)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A bit of JavaScript (your logic)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;And a $5 one-time fee to publish in the Chrome Web Store&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The
&lt;a href="https://developer.chrome.com/docs/extensions/reference/api" target="_blank" rel="noopener noreferrer"&gt;Chrome Extensions API&lt;/a&gt; is pretty minimal, but it covers all the basics:&lt;/p&gt;
&lt;p&gt;✅ You can persist data (e.g. auth tokens)&lt;br&gt;
✅ You can query open tabs, grab the current URL&lt;br&gt;
✅ You can even inject JavaScript into pages &amp;mdash; though this last bit triggers stricter review from Google, especially if you request broad access (like &amp;quot;&amp;lt;all_urls&amp;gt;&amp;quot;).&lt;/p&gt;</description></item></channel></rss>