Pushpaka is a self-hosted deployment platform with backend, worker, frontend, website, and infrastructure surfaces. Contributions should preserve operational clarity, product coherence, and deployability.
Read:
Check for existing work first:
- Issues for bugs and planned work
- Discussions for design and product questions
go work sync
go build -C cmd/pushpaka .
go build -C worker .cd cmd/pushpaka
go build -o pushpaka .
./pushpaka -devcd frontend
pnpm install
pnpm devcd website
npm install
npm run build- keep changes focused and scoped
- preserve existing product behavior unless the change explicitly updates it
- do not revert unrelated user changes in the working tree
- update documentation when changing product behavior
- prefer practical fixes over speculative refactors
- keep formatting consistent with
gofmt - avoid dead code and hidden side effects
- make error paths explicit
- preserve existing visual language unless intentionally redesigning
- keep responsive behavior intact
- avoid placeholder marketing copy that does not match real product behavior
Run what applies to your change:
go build -C cmd/pushpaka .
go build -C worker .
go vet ./...cd frontend
pnpm lint
pnpm buildcd website
npm run buildIf you cannot run a required check, explain why in your PR.
A good PR should include:
- what changed
- why it changed
- how it was validated
- any migration or operational impact
Also include:
- screenshots for UI changes
- workflow notes for CI or release changes
- API notes when request or response behavior changes
Update the relevant files when behavior changes:
README.mdfor product-level understandingdocs/for platform or operational detail- website docs for customer-facing usage flows
- never commit real credentials
- redact tokens and secrets from screenshots and logs
- use placeholders in examples
- follow SECURITY.md for vulnerability reporting