We are lucky to have you! 🎉👍
The following is a set of guidelines for contributing to this project. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a merge request.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Perfect 👍 — here’s the updated and polished CONTRIBUTING.md for your Need4Deed GitHub organization, now reflecting:
- Migration from GitLab → GitHub
- Your current setup with
fe,be, andsdk - SDK linking workflow
- Mention that designs are in Figma and must be followed
- Clearer instructions for newcomers
Thank you for your interest in contributing to Need4Deed! We’re building tools that empower people to do good — and every contribution helps. 💪
Not sure where to start?
Look through good first issues labeled good first issue in the appropriate repository.
Our main repositories:
| Repository | Description |
|---|---|
fe |
Next.js PWA — main app for automating Need4Deed processes |
be |
Node.js / TypeScript API for the app |
sdk |
Shared TypeScript types and utilities between FE and BE |
website |
React/Vite static landing page (currently frozen) |
Once an issue is picked up by a developer, it should be assigned to their GitHub account. If a developer lacks sufficient permissions for self-assignment, they should ask a team member to do it.
The assignment for issues labeled "good first issue" or "ready for dev" will expire after 3 business days. After expiration, the assignment no longer guarantees that nobody else has taken the issue.
If a developer needs more time to finalize and open a PR, they can post a comment on the issue page to notify the team. This will extend the expiration period by another 3 business days. This extension is possible only once.
- Go to the repo you want to contribute to (e.g.
fe) - Click Fork (top-right)
- Select your GitHub account as the destination
We prefer using yarn. You may use other package manager, but please make sure:
pre-commitscript is invoked before committing- do not clutter a repo with a lock file other than
yarn.lock yarn.lockis up to date.
git clone https://github.com/<your-username>/<repo-name>.git
cd <repo-name>
yarn installgit remote add upstream https://github.com/need4deed-org/<repo-name>.git
git remote -vYou should see:
origin→ your forkupstream→ the official Need4Deed repository
git checkout -b your_nick-feature-titleExample:
git checkout -b anna-fix-login-form
We maintain three sibling repositories that work closely together:
parent/
├── fe/ # Frontend (Next.js PWA)
├── be/ # be (API)
└── sdk/ # Shared types and helpers
The SDK shares TypeScript types between the frontend and be. We don’t fetch it from npm — we use the local sibling folder approach instead.
-
Make sure you have the latest branches checked out in each repo:
cd sdk && git pull origin <branch> cd ../fe && git pull origin <branch> cd ../be && git pull origin <branch>
-
In
feandbe, upgrade SDK locally:yarn upgrade need4deed-sdk
-
Ensure that the current branch name is checked out in all three repos.
feandbedefault branches aredevelop,sdkdefault branch ismain. You may use feature branches as well! In such a case🔄 if you get TypeScript errors, make sure
sdkandbeorfeare aligned and freshly pulled.
Please ensure all code changes directly address the issue. Minor flaws, such as a typo, may be corrected; however, if you make such corrections, please note them in the PR comments.
git push origin your_nick-feature-titlethen go to the forked repo on your GitHub account and open the PR.
And please make sure your opened PR is wired with the issue by using a keyword, e.g. closes followed by the link to the issue: #<number of issue>
All UI and UX designs are maintained in Figma. Before implementing any new feature or layout change:
- Always refer to the Figma file shared by the design team
- Match the spacing, typography, and component structure
- Discuss any deviations with the design lead before committing
Consistency between Figma and implementation helps ensure a unified user experience.
- FE is a Next.js progressive web app (PWA)
- You can manually test a page by visiting its URL directly
- The legacy website (Vite) remains online but is frozen
- Future plan: merge the landing page into the
feapp
Before submitting a bug:
- Check if it’s already reported under Issues in the relevant repository
If not, open a new issue using the bug report template.
Feature requests are tracked as GitHub issues too. Use the feature request template in the appropriate repo.
- Use present tense (“Add feature” not “Added feature”)
- Use imperative mood (“Fix bug” not “Fixes bug”)
- Keep the first line under 72 characters
- Include related issue numbers if applicable
Use emoji prefixes when relevant:
- 🎨
:art:— improve structure or formatting - 🐎
:racehorse:— performance improvement - 📝
:memo:— docs update - 🐛
:bug:— fix a bug - 🔥
:fire:— remove code or files
By contributing, you agree that your contributions are licensed under our Commons Clause + MIT License.
Need help or clarification?
- Open an issue in the relevant repository
- Tag a maintainer (e.g.,
@arturas) - Or email us at sowtware@need4deed.org to request Slack access
Any contributions are welcome! 🙏