In this section we will cover the high level architecture of Bitwarden, how it is structured, focusing initially on how the server and clients interact with each other, before diving into the details of the server and clients.
Since the web based clients mostly behave the same we will primarily cover the web vault, but also client specific areas for the browser extension, desktop application and CLI. The Mobile application has its own codebase.
The documentation of our architecture is primarily done using an interactive tool called IcePanel. It's recommend to start with one of the interactive tours of our application structure.