raresource.site
for different kinds of informations and explorations.
Awesome WebExtensions
Powered by raresource π
Awesome WebExtensions
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.
Contents
Getting started
- 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.
- Browser Extension Standard - Standard for the API, supported by Mozilla, Opera and Microsoft.
Community
- Google Groups - Discussions.
- Mozilla Discourse - Discussions.
#addons:mozilla.org
- Matrix channel by Mozilla.google-chrome-extension
tag on Stack Overflow - Relevant questions.firefox-addon-webextensions
tag on Stack Overflow - Relevant questions.microsoft-edge-extension
tag 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_scripts
on custom domains. - mozilla/webextension-polyfill - Polyfill to support the standardized promise based API in the
browser
namespace. - @types/firefox-webext-browser - Supplies TypeScript types for the
browser
namespace. - redux-webext - Uses Redux for managing the state of your WebExtension.
- ExtPay - Take secure payments in extensions without needing to run a server backend.
- inject-react-anywhere - Inject React components into 3rd party sites with convenient API and styles isolation.
- Moreβ¦
Tools
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.json
properties 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.
- Extension.js - Plug-and-play, zero-config, cross-browser extension development tool.
Testing
- 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.
Boilerplates
- browser-extension-template - Barebones boilerplate with parcel, options handler and auto-publishing.
- create-webextension - Yarn WebExtension generator.
- generator-web-extension - WebExtension generator that creates everything you need to get started with cross-browser web-extension development.
- WXT - Next-gen framework for developing web extensions
Sample Extensions
These are simple and modern WebExtensions repositories that could help you figure out where pieces go, including automatic deployment via Travis CI.
- npmhub
- Hide Files on GitHub
- mdn/webextension-examples - Various example extensions curated for the MDN documentation.
Readme's
curated for most productivity.