The officially supported Firefox and Chrome extension for the transientBug bookmarking service.
This extension was scaffolded out using Create-React-App and is developed in TypeScript. Styling is done with emotion and Tailwind CSS through the Tailwind Babel macro. State is managed through a light-weight (and probably way too "clever") immutable store modeled after Redux & friends and built with React Hooks, Contexts and Immer.js; Actions and reducers are organized in a ducks like pattern. All of this lives in src/
.
Thanks to CRA and web-ext
, building the extension is as easy as:
yarn install
yarn package
- Debug flags are editable in the preferences when built with the environment variable
REACT_APP_DEBUGGABLE=true
. yarn build
ornpm run build
will build/bundle the extension into/build
yarn storybook
ornpm run storybook
will start a storybook which has most of the components featured- Stories live along side their components under
<component name>.stories.js
files.
- Stories live along side their components under
To contribute, please fork this repo, make your changes and submit a PR back to this repository.
Known MVP work:
- Add a
bundle
orpackage
command for building the packages to upload - Tests where appropriate
- Standardize styling of add on
Known Bugs:
- Turbolinks and the like page loaders don't cause the page-action icon to change
- Lots of tags causes the description box to move down while the page doesn't scroll
Enhancements:
- Fetching tags from tB's autocomplete endpoint (TODO: document)
- Rich markdown previews in descriptions with Slate.js
- Transition from Travis-CI to GitHub Actions
To load the extension into Firefox temporarily, visit about:debugging
or see this MDN doc.
NOTE: Chrome support is a work in progress.
To load the extension into Chrome temporarily, visit chrome://extensions
or see this Google Dev doc.
This extension makes use of the Mozila WebExtension Polyfill to enable the use of the newer Promise based WebExtension APIs which are unavailable in Chrome. There could be edge cases which arise only in Chrome as a result of this.
- Bookmark Icons from the Google Material Design project.
- Save & Link Icons from Zondicons.
MIT