Green Goods is open source infrastructure stewarded by the Greenpill Dev Guild. This file is the repo-level quick reference; the full contributor guide lives at docs.greengoods.app/builders/how-to-contribute.
Install Node.js 22+ and Git first. Install Docker Desktop if you plan to run the full stack or indexer locally.
git clone https://github.com/greenpill-dev-guild/green-goods.git
cd green-goods
npm run setup
bun run dev:health
bun run devnpm run setup is the only normal npm entrypoint. It installs Bun if needed, installs workspace dependencies, and creates the root .env from .env.schema. After setup, use bun run ... for repo scripts.
- Pick a scoped task from the Linear backlog (or discuss the change with maintainers first via Discord/Telegram). Green Goods tracks all work in Linear — GitHub is for PRs and code review only.
- Create a focused branch from
develop(see Branch Model below). - Keep the change inside the smallest sensible package boundary.
- Add or update tests when behavior changes.
- Open a pull request into
developwith what changed, why it changed, and how you validated it.
Green Goods runs a staging → production flow:
developis the integration/staging branch. Open your PRs here; merges todevelopdeploy to staging for validation.mainis production. Maintainers promotedevelop → mainonce changes are validated on staging.
Branch from develop and PR into develop. Don't target main directly except for a documented hotfix.
Both branches are protected: a pull request with passing CI checks is required to merge. Maintainers keep an admin fast-path for docs/trivial/hotfix changes only. (Required reviewer approval turns on as the contributor base grows; until then, the passing-checks requirement is the gate — it already applies to every PR, including maintainers'.)
Green Goods does not run open-ended bounties. Paid implementation work is grant-dependent and must be clearly scoped with maintainers before work begins.
If compensation is part of the work, confirm the scope, budget, acceptance criteria, and review path in writing before implementing. Unlabeled issues and general roadmap items should not be treated as funded tasks.
Run the lightest validation that honestly proves your change. Before opening a normal pull request, expect to run:
bun run format:check
bun run lint
bun run test
bun run buildIf formatting fails, run bun run format, then rerun bun run format:check.
- Use
bun run test, neverbun test. - Use root
.envonly; do not add package-level env files. - Keep React hooks in
@green-goods/shared. - Use the
Addresstype for Ethereum addresses. - Use shared
logger, notconsole.log. - Add new user-facing app strings to
en,es, andpt. - Read the nearest
AGENTS.mdbefore editing a package.
Follow the Code of Conduct. Report security issues through the Security Policy, not public issues.