Thank you for your interest in contributing to My Dev Deck! This document provides guidelines and instructions for contributing to this project.
- Report bugs by opening an issue
- Suggest features through feature requests
- Improve documentation with clearer explanations or examples
- Submit code via pull requests
- Review pull requests from other contributors
- Share the project with other developers
- Node.js >= 18
- pnpm >= 10.19.0
- Git
- PostgreSQL (for backend development)
-
Fork the repository
# Click the "Fork" button on GitHub -
Clone your fork
git clone https://github.com/YOUR_USERNAME/my-dev-deck.git cd my-dev-deck -
Add upstream remote
git remote add upstream https://github.com/ORIGINAL_OWNER/my-dev-deck.git
-
Install dependencies
pnpm install
-
Set up environment variables
# Copy example env files (once created) cp apps/api/.env.example apps/api/.env cp apps/web/.env.example apps/web/.env -
Start development servers
# Run all apps pnpm dev # Or run specific apps pnpm --filter web dev # Dashboard (port 3001) pnpm --filter api start:dev # API (port 3000)
# Update your main branch
git checkout main
git pull upstream main
# Create a feature branch
git checkout -b feature/your-feature-name
# or
git checkout -b fix/bug-description- Write code following our style guidelines
- Test your changes thoroughly
- Update documentation if needed
- Commit your changes with clear messages
We follow conventional commit format:
type(scope): short description
Longer description if needed
Co-Authored-By: Your Name <your.email@example.com>
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, no logic change)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks, dependency updates
Examples:
feat(devinbox): add email list pagination
fix(api): resolve SMTP connection timeout
docs(readme): update installation instructions
chore(deps): update dependencies# Run all tests
pnpm --filter api test
# Run tests in watch mode
pnpm --filter api test:watch
# Run tests with coverage
pnpm --filter api test:cov
# Type checking
pnpm check-types
# Linting
pnpm lint-
Push your branch
git push origin feature/your-feature-name
-
Open a Pull Request on GitHub
- Use a clear, descriptive title
- Fill out the PR template
- Link related issues
- Add screenshots for UI changes
-
Wait for review
- Address any feedback
- Keep your PR updated with main branch
- Be patient and respectful
-
After approval, your PR will be merged!
- Use TypeScript for all new code
- Define proper types (avoid
any) - Use interfaces for object shapes
- Export types that might be reused
- We use Prettier for code formatting
- Run
pnpm formatbefore committing - 2 spaces for indentation
- Single quotes for strings
- Semicolons required
- Use functional components with hooks
- Follow Next.js App Router conventions
- Keep components focused and reusable
- Use Tailwind CSS for styling with
ui-prefix in shared components
- Follow NestJS module structure
- Use dependency injection
- Keep controllers thin, logic in services
- Write tests for services
my-dev-deck/
├── apps/
│ ├── web/ # Next.js dashboard
│ ├── docs/ # Documentation site
│ └── api/ # NestJS backend
├── packages/
│ ├── ui/ # Shared components
│ ├── eslint-config/
│ ├── typescript-config/
│ └── tailwind-config/
└── ...
When reporting bugs, please include:
- Clear title describing the issue
- Steps to reproduce the bug
- Expected behavior vs actual behavior
- Environment details (OS, Node version, browser)
- Screenshots or error messages if applicable
- Code samples if relevant
For feature requests:
- Check existing issues to avoid duplicates
- Describe the problem your feature solves
- Provide examples of how it would work
- Consider implementation if possible
- Be open to discussion and alternatives
All pull requests require:
- ✅ Passing CI/CD checks (linting, type checking, tests)
- ✅ Code review from at least one maintainer
- ✅ Up-to-date with main branch
- ✅ Clear description and purpose
- ✅ No merge conflicts
When adding features:
- Update relevant README files
- Add inline code comments for complex logic
- Update CLAUDE.md if architecture changes
- Add examples for new APIs
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold this code.
By contributing to My Dev Deck, you agree that your contributions will be licensed under the MIT License.
- Questions? Open a discussion on GitHub
- Stuck? Check existing issues or ask in PR comments
- General chat? Reach out to maintainers
Current focus areas where contributions are especially welcome:
- DevInbox Implementation - Following the implementation plan
- Documentation - Improving guides and examples
- Testing - Adding test coverage
- Docker Setup - Creating development containers
- CI/CD - Improving automation
See DEVINBOX_IMPLEMENTATION_PLAN.md for the current development roadmap.
Thank you for contributing to My Dev Deck! Your efforts help make developer tools better for everyone. 🙏