A curated list of awesome resources for WebExtensions development.
WebExtensions are a cross-browser system for developing browser add-ons. To a large extent the system is compatible with the extension API supported by Google Chrome. Extensions written for this browser will in most cases run in Firefox with just a few changes.
Follow @fregante for more webext-related news.
- Chrome Extensions documentation - Documentation for the original Chrome extension model.
- Mozilla's WebExtensions documentation - MDN wiki for the WebExtensions API.
- Browser support for WebExtensions - Compatibility table for Chrome, Edge, Firefox, and Opera.
- Safari Extensions documentation - Developer documentation on building Safari extensions. Technically not WebExtensions, the API is completely different.
- Opera API support - Detailed WebExtensions support for Opera.
- Porting Chrome Extensions to Firefox - Guide to prepare, install, and debug Chrome extensions to be ported in Firefox.
- Browser Extension Standard - Standard for the API, supported by Mozilla, Opera and Microsoft.
- Google Groups - Discussions.
- Mozilla Discourse - Discussions.
#addons:mozilla.org- Matrix channel by Mozilla.
google-chrome-extensiontag on Stack Overflow - Relevant questions.
firefox-addon-webextensionstag on Stack Overflow - Relevant questions.
microsoft-edge-extensiontag on Stack Overflow - Relevant questions.
Libraries and Frameworks
Code meant become part of the extension.
- webext-options-sync - Helps you manage and autosave your extension's options.
- webext-storage-cache - Map-like promised cache storage with expiration.
- webext-dynamic-content-scripts - Automatically inject your
content_scriptson custom domains.
- mozilla/webextension-polyfill - Polyfill to support the standardized promise based API in the
- @types/firefox-webext-browser - Supplies TypeScript types for the
- redux-webext - Uses Redux for managing the state of your WebExtension.
- ExtPay - Take secure payments in extensions without needing to run a server backend.
Apps that help you manage your extensions.
- Chrome Webstore Upload - Upload the extension to the Chrome Web Store via cli (or on Travis, automatically).
- mozilla/web-ext - Command line tool to help build, run, and test WebExtensions.
- chromepet - Get notified when your new version has been published.
- chrome-ext-downloader - Download any extension on Chrome Web Store to see how they do it.
- chrome-store-api - Chrome Web Store API wrapper.
- Chrome extension source viewer - WebExtension to view source code of extensions directly on the store.
- @wext/shipit - Tool to automatically publish to Chrome Web Store, Mozilla Addons and Opera Addons.
- wext-manifest-loader - Webpack loader that lets you specify
manifest.jsonproperties to appear only in specific browsers.
- webextension-manifest-loader - Webpack loader that loads browser tailored manifest.json. It also imports all importable properties, allowing you to have 'manifest.json' as your only webpack entry point.
- webpack-extension-reloader - A Webpack plugin to automatically reload browser extensions during development.
- webpack-target-webextension - Adds code-splitting support to WebExtensions build with Webpack.
- sinon-chrome - Mocks the Chrome Extensions API for testing.
- addons-linter - Validate an extension against Mozilla's guidelines.
- webextensions-jsdom - Load popup, sidebar and background with JSDOM based on the manifest.json.
- webextensions-api-fake - In-memory WebExtensions API Fake Implementation (includes TypeScript types).
- webextensions-api-mock - WebExtensions API as sinon stubs (includes TypeScript types).
- webextensions-schema - Programmatically consume the WebExtensions Schema JSON files.
- browser-extension-template - Barebones boilerplate with parcel, options handler and auto-publishing.
- create-webextension - Yarn WebExtension generator.
- extensionizr.com - Web UI that helps you create an initial configuration and files.
- generator-web-extension - WebExtension generator that creates everything you need to get started with cross-browser web-extension development.
- vue-web-extension - A Vue CLI 3+ preset for quickly starting a web extension with Vue, Babel, ESLint and more!
These are simple and modern WebExtensions repositories that could help you figure out where pieces go, including automatic deployment via Travis CI.
- Hide Files on GitHub
- mdn/webextension-examples - Various example extensions curated for the MDN documentation.
Contribute to this list: https://github.com/fregante/Awesome-WebExtensions