Skip to content

πŸŽ‰ React / Preact X browser extension boilerplate for the most popular browsers (Chrome, Firefox, Opera, new Edge and other Chromium-based browsers)

License

Notifications You must be signed in to change notification settings

ElForastero/react-browser-extension-boilerplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

React Web Extension Boilerplate

Documentation Maintenance License: MIT

This project aims to provide a simple boilerplate for writing browser extensions for the most popular browsers, such as Chrome, Firefox, Opera, new Edge and other Chromium-based browsers.

React Web Extension Boilerplate

πŸŽ‰ Features

  • Preact X or React (you can switch them easily in webpack config)
  • Shadow DOM for injected content
  • Styled-Components
  • Auto reloading (there's no need to manually reload extension)
  • Ready-to-go setup with internationalization

πŸ‘¨β€πŸ’» Examples

You can look at:

  • Framer: a todo list extension as an example of using this boilerplate.
  • Good Block: an extension to block websites, also using this boilerplate.
  • ScreenplaySubs: an extension to watch movies in Netflix with screenplays, in sync. Also using this boilerplate.

There are no straight restrictions on how to use it, or any limitations on tools and technologies. Think of it as a regular react application with some special properties.

πŸ“ Description

It's built with preact and preact-compat which allows you to switch between react and preact.

Content and styles which are injected directly to the page, are isolated inside Shadow DOM.

🏁 Install

git clone git@github.com:ElForastero/react-browser-extension-boilerplate.git <YOUR_PROJECT_NAME>

πŸš€ Usage

yarn watch

Runs webpack in watch mode. Automatically reloads the page after changes in files. Thanks to webpack-extension-reloader.

yarn build

Builds the extension in production mode. This version can be shipped to the store.

How to increment version

Use npm version cli command to bump a version of your package.json. The version of manifest will stay in sync with version specified in package.json.

For example:

npm version patch

This will increase your patch package.json version. During the next build output manifest file will have the same version.

⚠️ Content Security Policy (CSP)

"unsafe-eval" in directive "script-src" and "connect-src" are needed for auto reloading, and should be removed from production manifest.json.

πŸ’» Useful links

🀝 Show your support

Give a ⭐️ if this project helped you!

πŸ“ License

Copyright Β© 2019 Eugene Dzhumak.
This project is MIT licensed.


This README was generated with ❀️ by readme-md-generator