Skip to content

Vanshdeveloper/hashchat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”’ HashChat | End-to-End Encrypted Anonymous Chat App

Serverless, No-Login, Ephemeral Messaging built with Web Crypto API

License Firebase Encryption Status

A privacy-first, zero-setup burner chat application. Generate an instant room, share the encrypted link, and communicate securely. When the tab closes, the history vanishes forever.


Live Demo β€’ Features β€’ How It Works β€’ Tech Stack β€’ Setup


πŸ”₯ Key Features

πŸ” True End-to-End Encryption (E2EE)

Messages are locked using the browser's native Web Crypto API (AES-GCM) before they ever leave your device. The room's URL hash acts as the cryptographic key. Even the database administrator (or Firebase) only sees randomized gibberish.

πŸ—‘οΈ Ephemeral & Burner-Ready (Zero Trace)

Designed for pure, untraceable communication. Messages are completely ephemeralβ€”they exist only in memory. Closing the browser tab instantly purges the chat. No server logs, no database history, no evidence.

πŸ‘€ 100% Anonymous (No Login Required)

No emails, no phone numbers, no OAuth, and no IP logging. Just click generate and start typing.

⚑ Real-Time Serverless Architecture

Powered by Firebase Realtime Database for instantaneous WebSocket message delivery without the need to maintain a traditional backend server.


πŸ“– How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 1. Generate  │────▢│  2. Invite │────▢│  3. Vanish β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚                   β”‚                   β”‚
       β–Ό                   β–Ό                   β–Ό
  Create unique      Share the hash      Close tab &
  AES-GCM Key        with your peer      messages vanish

πŸ›  Tech Stack

Technology Purpose
HTML5 Structure
CSS3 Styling
JavaScript Logic & Interactivity
Firebase Real-time Database & Sync

πŸš€ Setup

Prerequisites

  • A modern web browser (Chrome, Firefox, Safari, Edge)
  • A Firebase account (for database configuration)

Installation

  1. Clone the repository
git clone https://github.com/yourusername/hashchat.git
cd hashchat
  1. Configure Firebase

    • Create a project at Firebase Console
    • Enable Realtime Database
    • Copy your Firebase config:
const firebaseConfig = {
  apiKey: "YOUR_API_KEY",
  authDomain: "YOUR_PROJECT.firebaseapp.com",
  projectId: "YOUR_PROJECT_ID",
  storageBucket: "YOUR_PROJECT.appspot.com",
  messagingSenderId: "YOUR_SENDER_ID",
  appId: "YOUR_APP_ID"
};
  1. Update the config

    Open index.html and replace the Firebase config with your own:

const firebaseConfig = {
    // Your config here
};
  1. Run locally

    Simply open index.html in your browser, or use a local server:

# Using Python
python -m http.server 8000

# Using Node.js
npx serve
  1. Deploy

    Deploy to any static hosting service:


πŸ“ Project Structure

hashchat/
β”œβ”€β”€ index.html         # Main HTML file with all structure
β”œβ”€β”€ script.js         # JavaScript logic (encryption, Firebase, chat)
β”œβ”€β”€ stylesheet.css    # All styling (dark theme, animations)
└── README.md         # This file

πŸ” Security Notes

  • Messages are end-to-end encrypted before being stored in Firebase Realtime Database
  • Each room has a unique hash that acts as the room ID
  • The encryption key is derived from the room URL - only those with the link can decrypt messages
  • No user authentication β€” anyone with the link can join
  • Messages are removed from memory when the tab is closed
  • Even Firebase cannot read your message contents - they are stored as encrypted data
  • For production use, consider implementing additional security rules in Firebase

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ™ Acknowledgments

  • Firebase for the real-time database
  • Space Grotesk font by Google Fonts
  • Inspired by privacy-first messaging apps

Made with πŸ”’ for private conversations

HashChat β€” When you're done, it's gone.

About

πŸ”’ HashChat - Instant private chat rooms that disappear when you're done. No registration, no traces. Just share a link and chat securely.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors