Operating system
All Bitwarden developers are issued with a MacBook or Windows laptop. The tooling recommendations
and instructions in this documentation assume that you’re using one of these operating systems,
noting where a tool may apply to only one of them.
This may require some adaptation if you’re using a different operating system.
The following tools are strongly recommended as part of the "standard" developer setup. We recommend
that any new Bitwarden developer install all of them as part of setting up their local development
environment.
IDEs
Tool | How we use it |
---|
JetBrains Rider | Fully featured IDE for C#, .NET & more. Bitwarden developers should contact IT for a license. |
Visual Studio | Used for C# development on Windows. |
Visual Studio Code | Used for all Typescript projects. Suboptimal for C#. Be sure to install extensions. |
Xcode | Required for iOS Mobile development and Safari web extension. |
Local environment
Tool | How we use it |
---|
.NET SDK | Required for server and other back-end development environments. |
Docker | Required for server development only. Bitwarden developers should contact IT for a license for Docker Desktop. |
Git | Commit signing is strongly recommended. |
Homebrew | Package manager for macOS. |
Iterm2 | A better terminal emulator (available via Homebrew). |
NodeJS | Check the engines in package.json for the current version. We recommend using a node version manager. |
npm | Check the engines in package.json for the current version. It is included with NodeJS. |
PowerShell | Available via Homebrew on macOS: brew install powershell . |
Rust | We stay on the latest stable version - preferably installed via rustup. |
Various browsers | It's nice to have a slew of browsers ready to test the extension in a host of scenarios. You can also use multiple browsers to have different browser extension version installed to compare them. |
Databases
Visual Studio Code extensions
There are some VS Code extensions that are very helpful in our codebase. A list of highly
recommended ones include the following:
The following tools may be useful depending on your preferences or what you're developing.
Tool | How we use it |
---|
Parallels | For running Windows or Linux VMs on macOS machines. |
Sourcetree | Git GUI. For the Git hooks to behave correctly on macOS when using nvm , please follow these instructions. |