# Coding BTCPay Server
# Why coding matters
By helping the project grow, become more mature, advanced and elaborate, coders working on BTCPay Server are a central component of the project.
If you have coding skills, be it writing or reviewing code, you can contribute to BTCPay Server.
# Where to start
If you're a developer looking to help, but you're not sure where to begin, check the good first issue label (opens new window), which contains small pieces of work that have been specifically flagged as being friendly to new contributors.
Contributors looking to do something a bit more challenging, before opening a pull request, please create an issue (opens new window) or join our community chat (opens new window) to get early feedback, discuss best ways to tackle the problem and to ensure there is no work duplication.
We are actively looking for developers who can take on and resolve GitHub issues and help with development. If you would like to help us, but need some guidance, the #dev channel on Mattermost (opens new window) is the place to ask questions.
# Setup Developer Environment
If you are interested in getting started as a developer or tester of the software behind BTCPay Server, check out the Setup Developer Environment guide that will walk you step by step through every software used in development with BTCPay such as Git, GitBash, Github, Docker, Visual Studio, Postgres, etc. If you have never coded before and you are looking to learn something new, start here.
# Local BTCPay Development
If you already have a developer environment setup you can start with the BTCPay specific Local Development documentation.
# Local BTCPay Testing
Once you have your development environment tools setup and your local BTCPay Server running, view the Local Testing guide. This shows you how to use BTCPay in regtest mode for use in development and for users who want to test new features before they are released.
Software requirements (ie. IDE) can also be found in local development.