Development Guide
This guide covers everything you need to contribute to Ever Teams — code conventions, testing practices, debugging tips, and the contribution workflow.
Contributing
Getting Started
- Fork the Ever Teams repository
- Clone your fork locally
- Create a branch from
develop:git checkout -b feature/my-feature develop - Make changes and commit with Conventional Commits
- Push and open a Pull Request against
develop
Commit Convention
All commits must follow the Conventional Commits specification:
<type>(<scope>): <description>
[optional body]
[optional footer]
| Type | Description |
|---|---|
feat | New feature |
fix | Bug fix |
test | Adding or updating tests |
build | Build system changes |
refactor | Code refactoring |
docs | Documentation changes |
chore | Maintenance tasks |
Tools: commitizen (interactive commit helper), commitlint (commit message validation), husky (git hooks)
Pull Request Guidelines
- Base your PR against the
developbranch - Include a clear description of the changes
- Reference any related issues
- Ensure all CI checks pass
- Follow the PR template in
.github/PULL_REQUEST_TEMPLATE.md
Code Style
TypeScript
- Strict mode enabled across all packages
- Use TypeScript for all new code
- Avoid
anytypes — use proper typing
Formatting
| Tool | Configuration |
|---|---|
| Prettier | .prettierrc — 120 char width, single quotes, tabs, semicolons |
| ESLint | .eslintrc.json — TypeScript, React, and Next.js rules |
| Stylelint | .stylelintrc.json — CSS/SCSS rules |
Editor Configuration
| Setting | Value |
|---|---|
| Print width | 120 |
| Quotes | Single |
| Indentation | Tabs (4 spaces for SCSS/YAML) |
| Semicolons | Yes |
| Trailing commas | None |
| Arrow parens | Always |
Running Formatters
# Format all code
yarn format
# Lint code
yarn lint
# Auto-fix lint issues
yarn lint-fix
# Spell check
yarn spell
Testing
Unit Tests
# Run all tests
yarn test
# Run tests for a specific app
cd apps/web && yarn test
E2E Tests
# Run E2E tests
yarn e2e
# Run E2E CI
yarn e2e:ci
Mobile Tests
# Unit tests
cd apps/mobile && yarn test
# E2E tests (Detox)
cd apps/mobile && yarn detox:build && yarn detox:test
Debugging
Web Application
- Browser DevTools — React DevTools, Network tab
- Recoil DevTools — For state inspection
- Next.js Debug Mode —
NODE_OPTIONS='--inspect' yarn start:web:dev - Logging — Client and server-side loggers (see API Layer)
VS Code Configuration
The project includes VS Code settings in .vscode/:
- Recommended extensions
- Debug launch configurations
- Editor settings
Common Debug Scenarios
| Scenario | Approach |
|---|---|
| API errors | Check Network tab, look at proxy route logs |
| State issues | Use Recoil DevTools, add console logs in stores |
| Build failures | Check yarn build:web output, review TypeScript errors |
| Performance | Use ANALYZE=true yarn build:web for bundle analysis |
Project Scripts
| Script | Description |
|---|---|
yarn start:web:dev | Start web with hot-reload |
yarn build:web | Production build |
yarn dev:web | Build packages + start web dev |
yarn lint | Lint all packages |
yarn format | Format all code |
yarn test | Run test suite |
yarn spell | Check spelling |
yarn knip:web | Find unused code (web) |
yarn dep-graph | View dependency graph |
Tooling
| Tool | Purpose |
|---|---|
| NX | Workspace orchestration |
| Turborepo | Build caching and pipelines |
| Lerna | Package versioning |
| Husky | Git hooks (pre-commit, commit-msg) |
| lint-staged | Run linters on staged files |
| Commitizen | Interactive commit helper |
| cspell | Code spell checker |