Thank you for considering contributing to Zoneless! This guide covers everything you need to get started.
This project is governed by our Code of Conduct. By participating, you are expected to uphold it.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/zoneless.git - Add the upstream remote:
git remote add upstream https://github.com/zonelessdev/zoneless.git - Create a branch:
git checkout -b feature/your-feature-name
npm install
docker compose up -d # MongoDB
npx nx serve api # API
npx nx serve web # Dashboard (separate terminal)npx nx test api
npx nx test web
npx nx lint api --fix
npx nx lint web --fixSearch existing issues first. When filing a new one, include:
- Steps to reproduce
- Expected vs. actual behavior
- Environment details (OS, Node version, browser)
Open a GitHub issue with a clear description of the proposed functionality and why it would be useful.
Look for issues labeled good first issue or help wanted.
- TypeScript for all new code
- PascalCase for function names:
GetAccount(),ValidateUser() - camelCase for variables:
accountId,userName - Prefer
constoverlet, avoidvar - Use
async/awaitover raw promises - Standalone Angular components with signals for state
- Zod for API request validation
We follow Conventional Commits:
<type>(<scope>): <subject>
Types: feat, fix, docs, style, refactor, perf, test, chore
Examples:
feat(api): add webhook endpoint support
fix(web): resolve wallet validation on paste
refactor(web): reorganize component structure
- Ensure tests and linting pass
- Update documentation if changing functionality
- Fill out the PR template
- Wait for review — maintainers may request changes
- Tests pass (
npx nx run-many --target=test --all) - Linting passes (
npx nx run-many --target=lint --all) - No merge conflicts with
main