Comm is an E2E-encrypted messaging app. You can think of it as Signal with an IRC-like federated community layer.
Learn more at comm.app!
The client apps and keyserver layer are mostly written in Flow-typed Javascript. These projects are organized in a monorepo structure using Yarn Workspaces.
native
contains the code for the React Native app, which supports both iOS and Android.keyserver
contains the code for the Node/Express server. This includes the application server for the communities layer (the "keyserver"), and can be configured to serve web
and landing
as well (see below).web
contains the code for the React desktop website.landing
contains the code for the Comm landing page.lib
contains code that is shared across multiple other workspaces, including most of the Redux stack that is shared across native/web.Comm's backend services are centralized and never touch plaintext data. They are written in Rust and deployed with Terraform to AWS. These projects are organized in a monorepo structure using Cargo Workspaces.
services
contains the various different backend services.shared
contains gRPC and protobuf definitions, and shared Rust libraries.Note that it’s currently it’s only possible to contribute to this project from macOS. This is primarily due to iOS native development only being supported in macOS.
Check out our doc on how to set up our dev environment.