Our great sponsors
|2 days ago||8 days ago|
|MIT License||Mozilla Public License 2.0|
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Show HN: Bedframe – open-source Browser Extension Development framework
6 projects | news.ycombinator.com | 5 Sep 2023
Ooof!! It is an... interesting time right now in extensions land. The switch from MV2 to MV3 is a bit chaotic but hopefully tools like this (Bedframe) and tools like [Plasmo](https://github.com/PlasmoHQ/plasmo) start to inject some freshness in the space.
Plasmo - the browser extension framework
2 projects | /r/chrome_extensions | 6 Jun 2023
For your next side project, make a browser extension
14 projects | news.ycombinator.com | 15 Jan 2023
Shameless plug, but we built the Plasmo Framework to make that (and a lot more) super easy: https://github.com/plasmohq/plasmo
Plasmo – a framework for building modern Chrome extensions
Show HN: Plasmo – a framework for building modern Chrome extensions
Thanks! We wrote a custom Parcel runtime  inspired by Parcel's HMR runtime (which was too bloated and buggy for us) that injects a web socket listener into the development build of the extension.
Whenever a bundle change happens, Parcel sends it the refresh message and it either does `chrome.runtime.reload()` or `location.reload()` depending on the context.
Please review my docs site
2 projects | news.ycombinator.com | 22 May 2022
Browser Extension with Blazor WASM - Cross-Browser Compatibility
2 projects | dev.to | 5 Sep 2022
The Browser Extension Working Group at W3.org proposes the web standards based on the Chrome extension manifest, which supports all web browsers. Based on that proposal, Mozilla has released the Browser Extension Polyfill library that supports the modern promise pattern instead of callback. Therefore, if you import this polyfill library, theoretically, your Chrome extension quickly turns into the browser extension that runs on multiple browser engines.
- Show HN: Plasmo – a framework for building modern Chrome extensions
It’s Like GPT-3 but for Code–Fun, Fast, and Full of Flaws
5 projects | news.ycombinator.com | 19 Mar 2022
I've written extensions before and Firefox has a very good polyfill  that makes it quite easy to write extensions for all browsers. It does get a bit trickier if you also want to incorporate TypeScript  or React however.
Ask HN: Browser-extension creators, how do you write for multiple browsers?
6 projects | news.ycombinator.com | 12 Feb 2022
I used WebExtension polyfill when adapting my FF addon to Chrome and admittedly all the intricate differences between APIs still costed me half a day of work.
I managed to have it done with only a few places where I branch on navigator.vendor, but If I wanted to ship different versions to AMO and CWS, I'd make use of something like DefinePlugin for webpack to include/exclude code based on build target.
Creating a browser extension for Safari and Chrome
5 projects | dev.to | 19 Jan 2022
Initially I created wrapper functions to convert Chrome functions that require callback to return promise instead. The better approach, as I found out later, is probably to use webextension-polyfill from Mozilla and its types.
Firefox Addons Unable to Update, Undisclosed AMO Issues
2 projects | news.ycombinator.com | 25 Sep 2021
I mean, the browser apis are close (and Mozilla still has much better documentation) but there are a LOT of edges cases where behavior diverges.
Frankly - I'm a little peeved that Optional permissions in Firefox are STILL broken - The prompt can only be triggered in response to a user action, and Firefox blows the fuck up if you put a promise anywhere in between the user click and the call to the api. Which is hugely ironic, since Mozilla is the one pushing to move all the webext APIs to be promise based (and provides a nice helpful library for Chrome/Edge/Safari support: https://github.com/mozilla/webextension-polyfill) which... doesn't work on their platform. Doubly ironic, since the result is that most FF extensions just ask for more permissions up front, which is exactly the opposite of what you'd want in the "secure/private" world Mozilla claims they're pushing towards.
How has your experience been building browser extensions?
2 projects | /r/webdev | 3 Jun 2021
Manifest v3 Update
3 projects | news.ycombinator.com | 27 May 2021
It's time to port your extension to Firefox
3 projects | /r/firefox | 13 Feb 2021
I would probably look into using https://github.com/mozilla/webextension-polyfill/ from the start. From my point of view the the Promise based API is much nicer to use.3 projects | /r/firefox | 13 Feb 2021
Looks like there's a polyfill you can use https://github.com/mozilla/webextension-polyfill
What are some alternatives?
esbuild-react-chrome-extension - Simple chrome extension with React and Typescript, bundled by esbuild
browser-extension-svelte - A simple cross-browser extension made with Svelte
uBlock-Safari - uBlock Origin - An efficient blocker for Chromium, Firefox, and Safari. Fast and lean.
webext-redux - A set of utilities for building Redux applications in Web Extensions.
vitesse-webext - ⚡️ WebExtension Vite Starter Template
testing-playground - Simple and complete DOM testing playground that encourage good testing practices.
browser-ext-react-esbuild - Browser extension implemented in TypeScript & React and built by esbuild for Chrome, Safari and possibly Mozilla Firefox
web-ext - A command line tool to help build, run, and test web extensions
google-meet-push-to-talk - Chrome extension that enables push-to-talk for Google Meet
docs - 📘 Documentation site
template - Template for building basic applications with Svelte
vimium - The hacker's browser.