# Contributing Code

## Where to Contribute?

Builder wants to become a powerful tool to enable GNOME developers to build great software. To do this we need your help.

Do you have knowledge in a particular area of software development? You can use that knowledge to help Builder expand it’s area of expertise.

Generally, code contributions fall into one of two categories: Application Plumbing or Plugins.

### Application Plumbing

If you like working on application plumbing, which is the infrastructure that makes implementing plugins simple, then you want to look at libide. Many of the core features of Builder are implemented here. That includes the application window, plugin interfaces and core machinery of Builder.

### Plugins

Plugins are how we integrate features into Builder for a specific problem. For example, the git plugin is the glue between the version control abstraction in libide and git.

There are many existing plugins already. You might want to contribute to an existing one that does not yet serve your needs well. Or maybe you want to create a new plugin that integrates a feature missing from Builder.

### Running

You might find yourself running Builder from Builder. By default, that will activate and bring-forward your previous instance of Builder. If you run Builder from the command-line with `--standalone`, it will not communicate with another instance of Builder.