SimpleLogin is the open-source privacy-first email alias and Single Sign-On (SSO) Identity Provider.
More info on our website at https://simplelogin.io
The extension uses VueJS with https://github.com/Kocal/vue-web-extension boilerplate.
You can directly install the extension by visiting the store page for your browser:
You can find more information about how the extension works and which parts it has in DEVELOPMENT.md
All work on SimpleLogin Chrome/Firefox extension happens directly on GitHub.
This project has been tested with Node v20.2.0 and NPM 9.6.6
To run the extension locally, please first install all dependencies with bun install
.
Run bun start
to generate the /dist
folder that can be installed into Chrome.
In case of Error: error:0308010C:digital envelope routines::unsupported
error, the workaround is to accept OPEN SSL by running this command before running bun start
export NODE_OPTIONS=--openssl-legacy-provider
Run bun run start:firefox
to generate the /dist
folder which can then be installed on Firefox, more info on https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension#installing
The code is formatted using prettier
, make sure to run it before creating the commit, otherwise the GitHub lint workflow will mark the check as not passing:
bun run prettier:write
- Increment the version in
package.json
. - Update CHANGELOG with the changes.
- Create a tag and push it to the repository. The tag name must match the version set in
package.json
. - Wait until the CI process generates the extension ZIP and uploads it to GitHub. You will be able to find the generated zip as an artifact attached to the GitHub release.
- Upload the extension to the Chrome, Firefox and Edge stores.
For Firefox, the code source must be submitted too. To faciliate the review process, the code source can be generated using the following script
For beta version:
# create the code source for firefox reviewer
rm -rf code-for-reviewer && mkdir code-for-reviewer
# copy the minimum files
cp -r src LICENSE CHANGELOG scripts package.json package-lock.json webpack.config.js .dev.sample.json .babelrc code-for-reviewer
# override the readme
cp reviewers/firefox-beta.md code-for-reviewer/README.md
For prod version
# create the code source for firefox reviewer
rm -rf code-for-reviewer && mkdir code-for-reviewer
# copy the minimum files
cp -r src LICENSE CHANGELOG scripts package.json package-lock.json webpack.config.js .dev.sample.json .babelrc code-for-reviewer
# override the readme
cp reviewers/firefox.md code-for-reviewer/README.md
In order to build the extension yourself, please follow these steps:
-
Make sure you have the dependencies installed and up-to-date with
bun install
. -
Run the build process with
bun build
. -
Create the zip package with
bun generate:zip
. You will find the extension in thedist-zip/
directory. -
If you want to use it on Firefox you will need to enter the
dist/
directory and runweb-ext build
. You will find the extension in thedist/web-ext-artifacts/
directory. -
(Optional, only useful for beta build) Build beta version: change
betaRev
inpackage.json
, then generate zip file using
For the development, you can run bun run start:mac
for the Mac app.
For the production release, bun run build:mac
bun run build:beta && bun run generate:zip