Skip to content

Paranoia: end-to-end encrypted, database-less, fully secure chat. 🟢

License

Notifications You must be signed in to change notification settings

ShinnoT/terminal-chat

Repository files navigation

Paranoia

WARNING: **WORK IN PROGRESS** - super unclean code...

Paranoia is a web-based, end-to-end encrypted, database-less, anonymous chat application.

Paranoia-card


Features 🔐

  • End-to-End Encryption - Using Elliptical Curve Diffie Hellman (ECDH) encryption, your messages are secure from the moment they're sent to the moment they're received.
  • Database-less - With no central database, your conversations aren't stored. Once they're gone, they're gone for good.
  • Anonymous - No sign-ups, no log-ins, no personal information. Just start chatting.
  • Beautiful UI - Thanks to TailwindCSS, Paranoia provides an intuitive, clean, and visually appealing user experience.

Quick Start 🚀

Prerequisites

  • Node.js >= 12.x
  • npm >= 6.x

Installation

  1. Clone the repository
    git clone https://github.com/ShinnoT/terminal-chat.git
  2. Navigate to the project directory
    cd terminal-chat
  3. Install the dependencies
    npm install
  4. Start the development server
    npm run dev

Visit http://localhost:3000 to start using Paranoia locally!


How It Works ⚙️

At its core, Paranoia uses the power of Next.js, tailwindcss, and Socket.io to deliver an unparalleled chatting experience.

  1. Next.js - A versatile framework that helps us manage the server-side rendering and generate static websites for each new chat room.
  2. TailwindCSS - A utility-first CSS framework packed with classes such as flex, pt-4, text-center and rotate-90 that can be composed to build any design, directly in your markup.
  3. Socket.io - Enables real-time, bidirectional and event-based communication between the browser and the server. It consists of:
    • A Node.js (in my case Express.js) server
    • A JavaScript client library for the browser (which can be also run from Node.js)

All messages are encrypted and decrypted using the Elliptic-curve Diffie–Hellman (ECDH) key agreement protocol. This ensures that even if someone is able to intercept the messages, they won't be able to decipher them without the key.


Support 💖

If you like this project, please consider giving it a ⭐ on Github!


License 📄

This project is licensed under the MIT License.


Made with ❤️ by Shinno Taguchi

Releases

No releases published

Packages

No packages published