Skip to content

Latest commit

ย 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ฌ NexChat

A modern and private WhatsApp-like Chat Application built with HTML, CSS, JavaScript, Node.js, and Socket.IO. Send messages, images, and videos instantly over your local WiFi or anywhere in the world via Ngrok โ€” all data saved permanently on your own machine. No third-party servers. No subscriptions. Yours forever.

โœจ Features

  • ๐Ÿ’ฌ Real-time messaging over WiFi and internet
  • ๐ŸŒ Local IP + Ngrok link sharing for long-distance chat
  • ๐Ÿ” Username and password login with bcrypt encryption
  • ๐Ÿ‘ค Profile photo, display name, bio, and phone number
  • ๐Ÿ“ Send images, videos, files โ€” multiple at once
  • โ†ฉ๏ธ Reply to specific messages (swipe or right-click)
  • โœ๏ธ Edit and delete sent messages
  • ๐Ÿ˜ React to messages with emoji (customisable favourites)
  • โœ“ Sent / โœ“โœ“ Delivered / ๐Ÿ”ต Seen message ticks
  • ๐Ÿ‘๏ธ Message info โ€” who saw it and exactly when
  • โŒจ๏ธ Live typing indicator
  • ๐ŸŸข Online / offline status with last seen time
  • ๐Ÿ” Search contacts by name or phone number
  • ๐Ÿ“ฑ Mobile and desktop responsive UI
  • ๐Ÿ’พ All data saved permanently โ€” works for life, not just runtime

๐Ÿ“‚ Project Structure

NexChat/
โ”‚
โ”œโ”€โ”€ server.js
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ START.bat
โ”œโ”€โ”€ start.sh
โ”œโ”€โ”€ README.md
โ”‚
โ”œโ”€โ”€ data/
โ”‚   โ”œโ”€โ”€ users.json
โ”‚   โ”œโ”€โ”€ messages.json
โ”‚   โ”œโ”€โ”€ contacts.json
โ”‚   โ””โ”€โ”€ sessions/
โ”‚
โ””โ”€โ”€ public/
    โ”œโ”€โ”€ index.html
    โ”œโ”€โ”€ style.css
    โ”œโ”€โ”€ app.js
    โ”œโ”€โ”€ emojis.js
    โ”œโ”€โ”€ media/
    โ”œโ”€โ”€ avatars/
    โ””โ”€โ”€ icons/

๐Ÿš€ Getting Started

Prerequisites

Install Node.js (v18 or higher) from:

https://nodejs.org

Clone the Repository

git clone https://github.com/rsamwilson2323-cloud/NexChat.git

Run the Project

Windows:

Double-click START.bat

Mac / Linux:

chmod +x start.sh
./start.sh

Then open your browser at:

http://localhost:3000

Dependencies install automatically on first run.

๐ŸŽฎ How to Use

  1. Open NexChat in your browser.
  2. Create an account with a username and password.
  3. Search for other users by name or phone number.
  4. Add them as a contact and start chatting.
  5. Send text, images, videos, or any files.
  6. Right-click or long-press any message for reply, edit, delete, react, and info options.
  7. Share your Local IP or Ngrok link so others can join.

๐ŸŒ Sharing with Others

Same WiFi Network

Share the IP address shown in the app welcome screen:

http://192.168.x.x:3000

Long Distance (Internet)

  1. Sign up free at https://ngrok.com
  2. Copy your authtoken from the Ngrok dashboard
  3. Open server.js and paste it on line 6:
const NGROK_AUTHTOKEN = "your_token_here";
  1. Restart the server โ€” your public Ngrok URL appears instantly in the app.

๐ŸŒŸ Features Overview

  • End-to-end local storage โ€” your data never leaves your machine
  • Multi-device support โ€” open on phone and PC simultaneously
  • Message reactions with 6 customisable favourite emojis
  • Full emoji picker with categories
  • Image lightbox viewer and video player
  • Paste images directly into the chat input
  • Permanent backup in the data/ folder โ€” copy it anywhere

๐Ÿ›  Technologies Used

  • HTML5
  • CSS3
  • JavaScript (ES6+)
  • Node.js
  • Express.js
  • Socket.IO
  • Multer
  • Bcryptjs
  • Ngrok

๐ŸŽฏ Use Cases

  • Private family or friend group chat
  • Offline LAN messaging at home or office
  • Remote team communication via Ngrok
  • Self-hosted alternative to WhatsApp
  • JavaScript + Node.js learning project
  • Portfolio demonstration

๐Ÿ“„ License

This project is licensed under the MIT License.

๐Ÿ‘จโ€๐Ÿ’ป Author

R. Sam Wilson

GitHub: https://github.com/rsamwilson2323-cloud


๐Ÿ’ฌ Chat privately, share freely, and own your data โ€” a full-featured personal messenger that runs on your machine and lasts a lifetime.

About

๐Ÿ’ฌ NexChat is a modern self-hosted messaging platform built with HTML, CSS, JavaScript, Node.js, and Socket.IO. Chat in real time, share media, react to messages, and connect over WiFi or the internet via Ngrok. Secure, private, responsive, and fully under your control with permanent local data storage.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages