Skip to content

CommE2E/comm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

406610c · Apr 23, 2025
Mar 20, 2025
Mar 26, 2025
Jul 5, 2021
Mar 15, 2022
Apr 7, 2025
Nov 23, 2024
Apr 23, 2025
Jan 22, 2025
Apr 23, 2025
Apr 20, 2025
Feb 27, 2025
Mar 1, 2025
Feb 27, 2025
Apr 23, 2025
Apr 14, 2025
Apr 20, 2025
Jun 6, 2022
Dec 22, 2021
Sep 18, 2024
Mar 16, 2022
Mar 14, 2023
Mar 18, 2024
Feb 19, 2024
May 28, 2024
Feb 19, 2024
Dec 5, 2023
Jul 16, 2021
Jul 20, 2022
Aug 1, 2023
Mar 21, 2025
Mar 31, 2020
Apr 9, 2025
Nov 21, 2024
Jan 3, 2024
Jan 16, 2023
Dec 14, 2024
Nov 30, 2020
Jan 5, 2024
Jan 19, 2024
May 14, 2024
Apr 19, 2024
Oct 23, 2023
Feb 27, 2025
Apr 23, 2025

Repository files navigation

Comm

Comm is an E2E-encrypted messaging app. You can think of it as Signal with an IRC-like federated community layer.

  • DMs and group chats are E2EE between devices using pairwise Double Ratchet sessions initiated via X3DH.
  • Communities, which consist of a tree structure of channels, are hosted on federated user-run backends that we call keyservers. Communication is encrypted via TLS.

Learn more at comm.app!

Repo structure

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.

Dev environment

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.