DEV Community

arnu515
arnu515

Posted on

Introducing Klay - An end-to-end encrypted chat application

Overview of My Submission

Klay is an end-to-end encrypted chat application.

It is built with the Vue-powered framework called Quasar, which allows you to create applications for the web, desktop and mobile all under one codebase.

The encryption is done using the WebCrypto APIs, so your private keys are never generated from the server.

The public key is stored unencrypted in Appwrite to allow other users to chat with you.

Appwrite Realtime is responsible for making the chat application function in real time.

You can encrypt all your messages with a PIN and restore them on another device using that PIN.

Get the Android app: https://appwrite.arnu515.tk/v1/storage/buckets/files/files/klay.apk/download?project=klay
Use the web version: https://klay-arnu515.vercel.app

(You may get a Play Protect error while installing the app. You can ignore that error. It happens because the certificate is self signed).

You can also compile the application from source. The instructions on how to do that are in the Github repo

Submission Category:

Mobile Moguls

Link to Code

GitHub logo arnu515 / klay

Klay is an end-to-end encrypted chat app

klay

Klay is an end-to-end encrypted chat app.

Works on the web, and as a mobile app.

Dev.to Post

https://dev.to/arnu515/introducing-klay-an-end-to-end-encrypted-chat-application-6lp

URL

Web: https://klay-arnu515.vercel.app/

Android: https://appwrite.arnu515.tk/v1/storage/buckets/files/files/klay.apk/download?project=klay

(You may get a Play Protect error while installing the app. You can ignore that error. It happens because the certificate is self signed).

Compile the app on your own

  1. Clone the repo
  2. Make sure you have completed the required environment setup
  3. Run yarn install in the frontend directory, and yarn install in the frontend/src-capacitor directory.
  4. Add an .env file with these contents in the frontend directory:
# Appwrite stuff
APPWRITE_ENDPOINT=https://appwrite.arnu515.tk
APPWRITE_PROJECT_ID=klay

# URL of the backend
BACKEND_URL=https://klay-backend-production-69e3.up.railway.app/
Enter fullscreen mode Exit fullscreen mode
  1. Run npx quasar run -T capacitor -m android/ios depending on your phone's operating system.



Additional Resources / Info

This application was actually a pretty hard thing to make. Mostly because this was my first time using Quasar, first time developing for Android, and first time using cryptography techniques straight in the browser.

Appwrite made it a breeze by allowing me to focus on only the important stuff and leaving the other stuff like authentication to itself.

The hosted version may be a bit slow because the python backend is hosted on a free tier.

Screenshots:

Image description

Image description

Image description

Image description

Image description

Discussion (0)