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.
- 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.
- Clone the Frontend and Server
SSH
git clone [email protected]:Discreetly/server.git
git clone [email protected]: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
-
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
-
Chat rooms