Skip to content
@Discreetly

Discreetly

Discreetly is a new type of communication protocol based on zero knowledge technology

Discreetly is an anonymous and federated chat application. Under the hood it uses a zero-knowledge protocol called RLN (Rate-Limiting Nullifier) to rate limit messages per user. Read more about RLN.

Features

  • Truly anonymous
    • It uses RLN to prove you are a member of a room, but not who you are.
    • If you don't trust the server, run your own
  • Federated
    • Run your own server, and use the same frontend as everyone else, or run your own frontend too.
  • Spammers are banned
    • If someone tries to send messages faster than the rate limit allowed, they are automatically banned, and there is no unban.

Endpoints

Getting Started

  • Clone the Frontend and Server

SSH

git clone git@github.com:Discreetly/server.git
git clone git@github.com:Discreetly/frontend.git

HTTPS

git clone https://github.com/Discreetly/server.git
git clone https://github.com/Discreetly/frontend.git

Install Dependencies

cd Discreetly/server && npm i
cd Discreetly/frontend && npm i

Set Server Environment Variables

PASSWORD=""
NODE_ENV="development"
DATABASE_URL=""
DATABASE_URL_TEST=""
THEWORD_ITERATION=''
DISCORD_PASSWORD=''
  • PASSWORD and DISCORD_PASSWORD set the password for express-basic-auth in server routes. The default usernames are admin and discordAdmin.
  • DATABASE_URL and DATABASE_URL_TEST are MongoDB Atlas URL's - you can use the same for both or a seperate cluster for testing
  • THEWORD_ITERATION Is used to keep track of what iteration the_word is on for seperate rooms

Initalize Prisma

cd Discreetly/server && npx prisma init && npx prisma db push

Seed the Database

npx prisma db seed

Run the Frontend and Server

cd Discreetly/server && npm run dev
cd Discreetly/frontend && npm run dev

Using Discreetly

The frontend is hosted at http://localhost:5173/ The server is hosted at http://localhost:3001/

  • You'll be presented with this homepage where you can create an identity 60e2e37d048c1c3a5d5c2957ef7e6b2f

  • Here you can join rooms through different gateways

    • With invite codes, you can join any rooms if you generate codes for them
    • The Alpha Testers room is a general room for the public
    • Jubmoji's were presented and collected by participants at ZuConnect and DevConnect
    • Ethereum rooms currently setup are for Beacon Chain Genesis Depositors and Stateful Genesis Funders addresses
    • The Word 691469a0e9a954d3272cf21919412191
  • Chat rooms

    • Chat rooms have an epoch time (rate limit) and a message limit. Seen in the top right of the chat rooms
    • Messages are color coded by their SocketIO session ID to help keep track of the flow of conversations 83b3f422315da5d0c391e4dc99733d7b

Popular repositories

  1. server server Public

    TypeScript 2

  2. frontend frontend Public

    Svelte 1

  3. interfaces interfaces Public

    TypeScript

  4. .github .github Public

  5. discord-bot discord-bot Public

    JavaScript

Repositories

Showing 5 of 5 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…