---
title: Contributing to SynoCommunity
description: How to contribute packages, fixes, and improvements
tags:
  - contributing
  - community
---

# Contributing to SynoCommunity

SynoCommunity is a community-driven project that provides open-source packages for Synology NAS devices. We welcome contributions of all kinds!

## Ways to Contribute

### Package Development

- **New Packages** - Add support for applications not yet available
- **Package Updates** - Keep existing packages current with upstream releases
- **Bug Fixes** - Fix installation, runtime, or compatibility issues
- **Architecture Support** - Extend packages to work on more devices

### Documentation

- **Improve Guides** - Clarify instructions, add examples
- **Package Documentation** - Write or update package-specific docs
- **Translations** - Help translate wizard dialogs and descriptions

### Community Support

- **Issue Triage** - Help categorize and reproduce bug reports
- **User Support** - Answer questions in issues
- **Testing** - Test packages on different hardware and DSM versions

## Getting Started

### 1. Set Up Your Environment

Follow the [development environment setup](../developer-guide/setup/index.md) to prepare your build system.

### 2. Understand the Framework

Read through the [developer basics](../developer-guide/basics/index.md) to understand:

- Package structure and anatomy
- Build workflow and targets
- How cross-compilation works

### 3. Find Something to Work On

**Good first issues:**

- Look for issues labeled `good first issue`
- Simple version updates
- Documentation improvements

**More advanced:**

- New package requests
- Architecture-specific fixes
- Framework improvements

### 4. Follow the Development Process

See [Development Process](development-process.md) for the full workflow from fork to merge.

## Contribution Guidelines

### Code Quality

- Follow existing code style and patterns
- Keep changes focused - one package or fix per PR
- Test on real hardware when possible
- Update changelog and version numbers appropriately

### Commit Messages

Use the `DISPLAY_NAME` from the package's `spk/*/Makefile` as the commit prefix. See [Development Process](development-process.md) for format details and examples.

### Pull Request Guidelines

- **Title**: `{DISPLAY_NAME}: brief description`
- **Description**: Explain what and why, not just how
- **Testing**: Describe how you tested the changes
- **Screenshots**: Include for UI changes or wizard updates

See [Pull Request Guidelines](pull-requests.md) for detailed requirements and the PR template.

## Communication

### GitHub Issues

- Bug reports and feature requests
- Package-specific problems
- Build failures

### Discord

- Real-time chat with maintainers and contributors
- Quick questions and debugging help
- Use the `#package-dev` channel for development discussions

[Join the SynoCommunity Discord](https://discord.gg/nnN9fgE7EF)

## Recognition

Contributors are recognized in:

- Package maintainer credits
- Repository contributor list
- Release notes for significant contributions

## Code of Conduct

All contributors are expected to follow the [Contributor Covenant Code of Conduct](https://github.com/SynoCommunity/spksrc?tab=coc-ov-file). We are committed to providing a welcoming and inclusive environment.

## Quick Links

- [Development Process](development-process.md)
- [Pull Request Guidelines](pull-requests.md)
- [Package Lifecycle Policy](package-lifecycle.md)
- [Developer Guide](../developer-guide/index.md)
- [GitHub Issues](https://github.com/SynoCommunity/spksrc/issues)
