Open source project aimed at helping amateur chemistry hobbyists find the best deals on chemical reagents. There are plenty of similar services out there for businesses, universities and research institutions, but none are available for individuals and hobbyists. ChemPal only searches suppliers that sell to individuals and ship to residences.
(sodium OR potassium) AND (carbonate OR hydroxide)
"sodium borohydride" AND NOT (triacitoxyborohydride)
Install ChemPal directly from the Chrome Web Store and click Add to Chrome.
You can also install the latest release from the releases page. A Firefox Add-ons listing is on the way.
Download the chem-pal.crx asset, then go to your Chrome extensions, and click "Load Packed", then select the .crx file and import it.
Download the chem-pal-firefox.zip asset, then open about:debugging#/runtime/this-firefox, click Load Temporary Add-on…, and select the downloaded zip (or its manifest.json).
Temporary add-ons are removed when Firefox restarts — re-load the zip to use
it again. A permanently installable signed .xpi (via addons.mozilla.org) is
not provided yet.
Make sure youre on node v22.15.0 and npm v10.9.2 or higher (use nvm if needed)
Windows NVM: Installer is here (i've never tried it)
OSX: Run brew install nvm, then follow the steps about updating your ~/.bash_profile that it shows you in the output.
After nvm is installed, run:
nvm install --lts
nvm use --lts
node --version # Should output v22.15.0
Install pnpm (package manager)
npm install -g pnpm
For local development — loading as an unpacked extension:
git clone https://github.com/jhyland87/chem-pal.git
cd chem-pal
pnpm run setup
pnpm run build
Then import the build/ folder as an unpacked Chrome extension.
For Firefox, build the Firefox variant and load it as a temporary add-on:
pnpm run build:firefox
Then open about:debugging#/runtime/this-firefox → Load Temporary Add-on…
and select build-firefox/manifest.json.
pnpm run build produces a development build and includes the MSW
mock service worker plus source maps. Do not submit the output of
pnpm run build to the Chrome Web Store.
For a Chrome Web Store submission bundle, use:
pnpm run build:prod
This runs the production Vite build and packs the extension via
tools/pack-extension.js. The resulting artifact is the only build
intended for store submission.
# Install dev dependencies
pnpm run setup
# Run unit tests
pnpm run test
# Run the build.
pnpm run build