Thank you for considering contributing to InboxWhiz! ❤️
This document will help you set up a local development environment, understand the project structure, and submit high-quality contributions.
By submitting a pull request, you agree to license your contributions under the GNU General Public License v3.0 (GPL-3.0), the same license as the project. See the LICENSE file for details.
public/ # Contains files that do not need to be pre-bundled
src/
data/
content_scripts/ # Connects repositories with services
repositories/ # Implements browser/email/storage logic outside DOM
services/ # Implements logic inside DOM
domain/
entities/ # Shared models & types
repositories/ # Interfaces for repositories
presentation/
apps/ # UI & entry points
providers/ # React context providers
test/ # Automated tests
docs/ # Documentation
git clone https://github.com/InboxWhiz/gmail-declutter-extension.git
cd gmail-declutter-extension
npm installnpm run devThis will run a local development server with mock implementations of repositories.
- If you only want to work on UI, you can use this local server.
- If you want to load it into the browser as a proper extension, follow the next step:
npm run buildThis will create a development bundle inside the dist/ folder.
- Open
chrome://extensions/in Chrome. - Enable Developer Mode (toggle at top right).
- Click Load Unpacked and select the
dist/folder.
The extension should now appear in your browser.
Automated formatting and linting tests will run on all PRs. Run before committing to cut down on GH workflow failures:
npm run lint-
Fork the repo and create your branch from
main:git checkout -b feature/my-awesome-change
-
Test locally to ensure nothing breaks.
Where appropriate, please write relevant tests to cover your changes. This helps us maintain code quality and prevents future regressions.
npm run test npm run test:ui -
Write a clear PR description:
- What feature/fix does this add?
- reference any existing issues by typing
Fixes #<issue number>in your pull request
- reference any existing issues by typing
- Screenshots (if UI changes).
- What feature/fix does this add?
-
Submit your PR to
main.- Resolve any merge conflicts.
- PRs will be reviewed for correctness, clarity, and consistency.
- Address feedback if requested.
- Open a GitHub Issue with the
questionlabel. - For quick clarifications, leave a comment on the relevant code or PR.
