Aam Digital is open source because we believe in building things together and letting people benefit from and adapt things rather than everybody reinventing their own wheel.
In order to build great software for small social impact organisations we welcome anybody willing to contribute. We are a small core team of full-time developers as well as a few regular volunteer contributors. So whether you want to extend our code for your own use case or just help out - we welcome any contributions to make this project better!
To get started, please have a look at our Developer Documentation.
Do get in touch with us by commenting on or creating issues here on GitHub. For more general discussions or questions, use the Discussions section.
Our main communication channels in the team are
Have a look at our issues on GitHub. Some of them are explicitly label as suitable issues for a new contributor to work on: Community Help Wanted. If you are not sure whether you should work on a certain issue, just post a short comment in the issue to clarify.
Before you start working on an issue, please always comment on it first to help us coordinate. We will then assign you on the GitHub issue and change the "status" within the project to "In Progress" (as an outside contributor you may initially not have required permissions on GitHub to assign yourself).
We organize our work using GitHub Projects' kanban boards and issue labels:
We are following the "GitHub Flow", using feature branches for development. Please read through the following short guide before you get started: Understanding the GitHub Flow.
In summary, this means each feature will be implemented on it's own branch, which will then merged back onto the master branch.
If you participate in the development, either by fixing a bug or implementing a new feature, follow these steps:
master!) for each issue/feature you are working on. Use a descriptive branch name.master branch for each).ng test to see if all unit tests are passed.
If possible/necessary add more unit tests related to your new code. All tests must be passed before your contribution can be accepted.ng lint to see if your code passes our project's code formatting standards.
All problems must be resolved before your contribution can be accepted.master branch also are available as a docker image (pr-<pr_number>, e.g. pr-101; <last release, patch + 1>-edge.<commits since>, e.g. 3.52.1-edge.4; the newest one is also tagged edge) that can be deployed for testing or as a hotfix, if necessarymaster branch after review.#15 to reference issue #15)A git worktree gives you a second checkout of the repository
for another branch, so you can work on it without stashing or switching. Claude Code creates its
worktrees under .claude/worktrees/, which is in .gitignore and must never be committed.
git worktree add .claude/worktrees/<branch-name> <branch-name>A worktree shares the git history but not node_modules. Run npm ci inside it, or, if the branch has
the same dependencies, symlink the folder of the main checkout:
ln -s "$(git rev-parse --show-toplevel)/node_modules" .claude/worktrees/<branch-name>/node_modules.
If you create a worktree outside .claude/worktrees/, stage files by name: git add . would stage the
worktree folder as a phantom submodule (a gitlink), which breaks the CI. Remove such an entry with
git rm --cached <path>.
Our project is licensed under GPL 3.0. Please note that by contributing, you also make your work available to the public for further use under the terms of that license (see LICENSE.md).