We love contributions big and small. PostHog Code is the IDE for understanding how users interact with your product -- and we want the community involved in shaping it.
- Fork the repo and clone it locally
- Follow the Development setup below
- Create a branch (
feat/my-change,fix/that-bug) - Make your changes and open a pull request
We recommend creating an issue first if one doesn't already exist so we can align on the approach before you invest time.
# Prerequisites: Node.js 22+, pnpm 10.23+
pnpm install
cp .env.example .env
pnpm devSee docs/LOCAL-DEVELOPMENT.md for connecting to a local PostHog instance.
- Run
pnpm typecheck,pnpm lintandpnpm testlocally - Resolve merge conflicts before requesting review
- Keep changes focused -- one logical change per PR
- Add tests where they meaningfully improve confidence
- Follow existing patterns and conventions in the areas you touch (see CLAUDE.md for code style details)
- PRs are triaged and assigned to the relevant team
- Expect acknowledgement within a few days. Thorough reviews may take longer depending on load
- We sometimes close PRs that are out of scope or would add long-term maintenance burden. You're always welcome to reopen with updates
Spotted a bug? Something broken? Raise an issue for the fastest response.
Raise an issue and tag it as an enhancement. Give us as much context on the why as possible -- we love hearing about the problem you're trying to solve.
If you're unsure whether something fits, open an issue first and we'll get back to you quickly.