Welcome Contributors
Contributions are welcome - code, docs, whatever it might be! If this is your first contribution to an Open Source project or you’re a core maintainer of multiple projects, your time and interest in contributing to this project is most welcome.Before starting, please read the developer guide to understand the project structure and setup your development environment.
Getting Started
Prerequisites
- Node.js:
>=22.12.0 <23.0.0 - pnpm:
10.6.1 - PostgreSQL: Latest version
- Redis: Latest version
- Git: Latest version
Setup Development Environment
Contribution Workflow
1. Pick an Issue
Browse GitHub issues and pick one that interests you, or create a new issue if you have an idea. Good first issues are labeled withgood first issue.
2. Discuss Before Coding
Best ways to interact with the community:- GitHub issues: For detailed, longer-written discussions
- Discord chat: For quick questions and feedback
3. Create a Branch
Create a new branch for your changes:feature/add-mastodon-provider- New featuresfix/calendar-rendering-bug- Bug fixesdocs/update-api-guide- Documentationrefactor/improve-auth-flow- Refactoring
4. Make Your Changes
Follow the code standards and testing strategy while implementing your changes.5. Test Your Changes
6. Commit Your Changes
Write clear, descriptive commit messages:feat: New featurefix: Bug fixdocs: Documentation changesrefactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
7. Push Your Changes
8. Create a Pull Request
Go to GitHub and create a pull request to the main branch. Pull Request Template:Types of Contributions
Code Improvements
Bug Fixes:- Search for bugs in GitHub issues
- Reproduce the bug locally
- Fix and add regression tests
- Submit PR with clear description
- Discuss feature in issue first
- Break into smaller PRs if possible
- Include tests and documentation
- Update relevant docs
- See Creating a Provider
- Test OAuth flow thoroughly
- Include platform-specific documentation
- Add platform logo and branding
Documentation Updates
Documentation improvements:- Fix typos and grammar
- Add missing information
- Improve clarity and examples
- Update outdated content
/docs- Main documentation (this site)README.md- Project README- Code comments - JSDoc/TSDoc comments
/CONTRIBUTING.md- This file
Feature Requests
Submit feature requests as GitHub issues:- Search existing issues first
- Describe the feature clearly
- Explain the use case
- Provide examples if possible
Bug Reports
Report bugs with detailed information: Bug Report Template:Code Review Process
What Happens After Submitting PR
Review Criteria
Your PR will be evaluated on:- Code quality: Follows standards, clean and readable
- Tests: Adequate test coverage
- Documentation: Updated relevant docs
- Functionality: Works as intended
- Performance: No significant performance regression
- Security: No security vulnerabilities
Development Guidelines
Backend Development
Critical Rules:
- Always follow Controller → Service → Repository pattern
- Most logic goes in
libraries/nestjs-libraries/src/services - Never skip layers in the architecture
- Use dependency injection
Frontend Development
See Frontend Development for details.Integration Development
When adding a new social media integration:- Extend
SocialAbstractclass - Implement
SocialProviderinterface - Add OAuth flow
- Implement post publishing
- Add error handling
- Include tests
- Update documentation
Style Guidelines
Code Formatting
- Linting: Run from root:
pnpm lint - Auto-format: Prettier is configured
- TypeScript: Required for all code
- No
any: Avoidanytype, use proper types
Naming Conventions
Files:Communication
Discord Community
Join our Discord server for:- Quick questions
- Feature discussions
- Help with contributions
- Community chat
GitHub Issues
Use GitHub issues for:- Bug reports
- Feature requests
- Detailed technical discussions
- Long-form proposals
Code of Conduct
This project follows the Contributor Covenant Code of Conduct. Key points:- Be respectful and inclusive
- Welcome newcomers
- Accept constructive feedback
- Focus on what’s best for the community
Recognition
Contributors are recognized in:- GitHub contributors list
- Release notes
- Community shout-outs
Need Help?
Check these resources: Your contributions help make Postiz better!Next Steps
Code Standards
Follow code standards and conventions
Testing Strategy
Learn testing best practices