Contributions are welcome from anyone who is interested in improving this project and there are multiple ways in which you can contribute.
Have a look at the open issues and look for issues that are labeled with help wanted or good first issue. If you find an issue that you would like to work on, please leave a comment on the issue to let us know.
If there isn't an issue for the work that you would like to contribute, start by opening a discussion to discuss the changes that you would like to make.
In order to maintain a high standard of code quality, please ensure that you are familiar with the technology stack used in this project where it applies to your code. The technology stack used in this project is:
The following instructions are for running the project locally for development.
-
Clone the repository and switch to the project directory
git clone https://github.com/lukevella/rallly.git cd rallly -
Install dependencies
pnpm install
-
Setup environment variables
Copy the sample environment file and fill in the required values:
cp apps/web/.env.sample apps/web/.env cp packages/database/.env.sample packages/database/.env
See configuration options for a full list of available options.
-
Generate Prisma client
pnpm db:generate
-
Setup database
You will need to have Docker installed and running to run the database using the provided docker-compose file.
To start the database, run:
pnpm docker:up
Next run the following command to setup the database:
pnpm db:reset && pnpm db:seedThis will:
- delete the existing database (if it exists)
- run migrations to create a new database schema
- seed the database with test users and random data
-
Start the portless proxy
The dev scripts route the apps through portless, which exposes them at stable HTTPS URLs (e.g.
https://web.rallly.localhost) instead oflocalhost:<port>.The proxy starts automatically the first time you run a dev script, so this step is usually unnecessary. To start it manually:
pnpm proxy:start
-
Start the Next.js server
pnpm dev
The app is served at
https://web.rallly.localhost, and the landing page athttps://landing.rallly.localhost.In a git worktree, portless prepends the branch name automatically, so every worktree gets its own host (e.g.
https://my-feature.web.rallly.localhost) and several dev servers can run side by side without colliding. Portless prints the URL on startup.The dev script exports the URL portless assigned as
NEXT_PUBLIC_BASE_URLandDEV_DOMAIN, so links, assets, auth callbacks and the Next.js dev-origin allowlist follow the host automatically — nothing to configure per worktree. Because these are set in the shell, they take precedence over anyNEXT_PUBLIC_BASE_URLin.env.
To contribute translations, please check out our guide for translators which contains all the information you need to get started.
If you find this project useful and would like to contribute financially on an ongoing basis, please consider becoming a sponsor. Sponsors help us cover the costs of hosting, development, and maintenance, and enable us to continue working on the project.
To become a sponsor, visit our sponsor page and select the sponsorship level that works for you.
Donations are also accepted through PayPal.
To contribute documentation please check out the contributing guide which contains all the information you need to get started.
Please note that this project is released with a Code of Conduct. By participating in this project, you agree to abide by its terms.
Before we can merge your first pull request, you need to sign our Contributor License Agreement. The CLA assistant bot comments on your pull request with a link. You sign once with your GitHub account and it covers all your future contributions.
By signing, you license your contribution under the same license as the project, currently AGPL-3.0, and you grant the project maintainers the irrevocable right to relicense it, including under other open source or proprietary licenses. You keep the copyright in your work. Read the full agreement before you sign.
Thank you for your interest in contributing to this project!