If you find any bugs or have a feature request, please create an issue.
If you speak a language other than English and you want to help translate Crab Fit, visit Crab Fit on Transifex and click "Join this project".
For more information on how to translate, visit the translating wiki page.
This is a guide on getting Crab Fit working locally for development purposes. You should first follow this if you're thinking of making a pull request.
Note: if you'd like to get Crab Fit running because you want to have your own instance, please instead follow the self-hosting guide.
Crab Fit is written using Rust (for the API) and Next.js (for the frontend). Before you begin, you'll need to make sure you have the required software installed:
Software | Installation instructions |
---|---|
git | You'll need git to clone the repository. You likely already have it if you're on MacOS, otherwise see the git site. |
node | I recommend using nvm or fnm to manage multiple node versions, but you can also install directly from the node.js website. |
yarn | Node comes with npm , which you can use to run npm install --global yarn to install yarn. |
rust | You can install rust by following the directions on the rust website. |
- Clone the repository.
- Run
cargo run
in theapi
folder to build and start the API. - Run
yarn
infrontend
folder to install dependencies, thenyarn dev
to start the dev server.
By default, the API will start at http://localhost:3000, and the frontend will be available at http://localhost:1234.
For code-specific documentation, please see the README files in the repo.
The Crab Fit browser extension is currently an iFrame that points to /create
on the frontend. To test, edit the popup.html
file's iframe src to be http://localhost:1234/create
, then view that in your browser.
Note that you can't just visit the url directly, as it will redirect to the full create form if not running within an iFrame.
Before starting a pull request, first check if there's an issue open that your pull request will resolve. If there isn't, please create one to give the community a chance to comment, and also to prevent others from working on similar pull requests that will conflict with yours.
Mention the issue you are closing at the top of your PR like so:
Closes #123
[describe your PR...]
main
Production branch. Do not commit directly to this branch.
feat/*
Prefix new feature branches with feat. When complete, submit a PR into main.
fix/*
When fixing a bug, prefix branches with fix. When complete, submit a PR into main.
refactor/*
For refactoring code. When complete, submit a PR into main.
chore/*
For chores like adding type checking, setting up CI, fixing typos etc. When finished, submit a PR into main.
docs/*
Used when updating documentation such as README files. When finished, submit a PR into main.