# Contributing

#### ⛑️ Want to help? ⛑️

Here is a [dedicated view for **good first bugs**](https://github.com/orgs/DefGuard/projects/5/views/5)

All source code of our app is located in three repositories

* [Core:](https://github.com/DefGuard/defguard) backend and server for our app
* [Gateway:](https://github.com/DefGuard/gateway) VPN client which connects core with WireGuard interface

You can find how to set up your development environment in [the Environment setup article](https://docs.defguard.net/for-developers/dev-env-setup).

We have a dedicated (closed only for developers) Matrix channel. If you publish a pull request, and it will be accepted, you will be invited to the developer's channel. For now, you can join our [General discussion](https://matrix.to/?ref=teonite.com#/#defguard:teonite.com).

### Found a bug?

If you found a bug you [can submit it here](https://github.com/DefGuard/defguard/issues/new?assignees=\&labels=bug\&template=bug_report.md\&title=).

### Pull requests

All pull requests should be done against the master branch of any repository from above.

A good pull request should have:

* Description of changes made
* New tests if necessary
* Passing CI


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.defguard.net/for-developers/contributing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
