Welcome — glad you want to contribute! Below is the recommended workflow and some best practices to make your contributions smooth and appreciated.
-
Fork the repository Go to simpleneeraj/vision-dashboard and click Fork in the top-right.
-
Clone your fork locally
git clone https://github.com/YOUR-USERNAME/vision-dashboard.git cd vision-dashboard -
Install dependencies The project uses Plasmo, Next.js, TypeScript, Tailwind, Zustand etc.
npm install # or if you use pnpm pnpm install # or yarn yarn install
-
Run in development mode
npm run dev # or pnpm dev / yarn dev depending on what you're usingSince it's a Chrome extension / Plasmo project, you can then load the build in your browser (or use the dev build) to test.
-
Create a feature branch Use a descriptive branch name, for example:
feature/add-settings-panelorfix/newtab-load-flickergit checkout -b feature/your-descriptive-name
-
Make your changes
- Stick to the existing style (TypeScript, the code structure).
- Write clean, modular code.
- If you're adding UI, try to follow existing CSS/Tailwind patterns.
- If you add new components, try to keep them reusable when possible.
-
Test thoroughly
- For extension behavior, test in your browser.
- Test default settings vs custom settings.
- Make sure edge cases (no storage yet, localStorage cleared, etc.) work fine.
-
Commit messages Use meaningful commits. You might adopt a prefix convention like:
feat:for new featuresfix:for bug fixeschore:for refactoring / maintenancedocs:for documentation changes
Example:
feat: add blur effect toggle in settings fix: prevent crash when storage quota exceeded -
Push your branch
git push origin feature/your-descriptive-name
-
Open a Pull Request (PR)
- Base the PR on the
mainbranch of the original repo. - Provide a descriptive title and description: what’s changed, why, and any steps to test.
- If applicable, include screenshots or demos for UI changes.
- Tag it to if it’s a bugfix, feature, etc.
- Base the PR on the
- Follow consistent formatting (if you have prettier / ESLint configured).
- Add or update documentation/comments when you change behavior (for example, if you're changing how local storage is used).
- Keep UI accessible (e.g. good contrast, keyboard navigable where applicable).
- Think about performance, especially since it’s an extension — minimize bundle size, avoid heavy synchronous operations, etc.
- Your contributions will be under the same license as the project (whatever license you choose, e.g. MIT).
- If adding images / icons / assets, ensure they respect the license (if you're using third-party assets).
If you find bugs or want to suggest improvements:
- Check existing Issues to see if someone already reported it.
- If not, open a new Issue with:
- a clear title
- description of the problem / idea
- steps to reproduce (for bugs)
- environment details (browser version, extension version, etc.)
Contributing is about clear communication, clean code, and testing. Even small improvements (minor UI tweaks, bug fixes, documentation) are very helpful!