https://github.com/mrquackduck/colirwebclient
Secure messaging platform with client end-to-end encryption and ability to communicate via voice channels.
https://github.com/mrquackduck/colirwebclient
colir feature-sliced-design fsd react shadcn signalr-client vite
Last synced: 12 months ago
JSON representation
Secure messaging platform with client end-to-end encryption and ability to communicate via voice channels.
- Host: GitHub
- URL: https://github.com/mrquackduck/colirwebclient
- Owner: MrQuackDuck
- License: bsd-2-clause
- Created: 2024-08-13T17:11:02.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-04T20:18:27.000Z (over 1 year ago)
- Last Synced: 2025-06-14T06:01:51.627Z (12 months ago)
- Topics: colir, feature-sliced-design, fsd, react, shadcn, signalr-client, vite
- Language: TypeScript
- Homepage: https://colir.net
- Size: 30 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Colir (Web Client)
Colir — fast & secure messaging platform with end-to-end encryption.
BackEnd can be found here.
## 🌈 The idea
The main goal of **Colir** is to provide an ability to **communicate securely**.
To implement that, **end-to-end encryption** was chosen. Before using the application, **users should discuss a secret key** that will be **used to encrypt & decrypt** the data.
> [!NOTE]
> The **encryption keys** for rooms are stored **on the client only**. They're **not being sent to the server**.
## 🌠 Features
Besides that, **Colir** **has** a couple of **features**, which can interest you in:
- **Rooms** are places where the encrypted communication happens. When a user **creates** a room, he/she chooses an **encryption key** (which will be stored at the client) and receives a **room GUID**. **They can share that GUID** with someone else so they **can join** that room. **Anyone** who has **the GUID** of a certain room **can join** it, but it will be **impossible to decrypt** the data **if** the **wrong encryption** key was provided.
- **Expiry date** can be provided for **rooms**. **When** the **expiry date comes**, all **data won't be accessible** and **will be deleted** forever.
- There's only **one voice channel** per room.
- **Passwordless authentication**. There are **three ways to authenticate**: **anonymous** (gives you a one-time JWT), **GitHub** account, and **Google** account.
- Each user has a unique **"Colir ID"**, which is a **6 symbol-length hexadecimal number** to identify a user.
> [!CAUTION]
> If you authenticate as **anonymous**, you **won't be able to login** into that account again.
> **Therefore**, use **3rd party providers** such as **GitHub** and **Google** to be able to login as much as you want.
## 👀 Screenshots
### 🖥 Desktop (~w1910px):

### 📱 Mobile (~w440px):

## 🚀 Development server
1. Install [node.js](https://nodejs.org/en)
2. Install [pnpm](https://pnpm.io/installation)
**>** `npm install -g pnpm`
4. Clone the repo
**>** `git clone https://github.com/MrQuackDuck/ColirWebClient.git`
5. Jump into the folder
**>** `cd .\ColirWebClient\`
6. Install all packages
**>** `pnpm i`
7. Run the server
**>** `pnpm run dev`