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.
- ๐ฌ 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
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/
Install Node.js (v18 or higher) from:
https://nodejs.org
git clone https://github.com/rsamwilson2323-cloud/NexChat.gitWindows:
Double-click START.bat
Mac / Linux:
chmod +x start.sh
./start.shThen open your browser at:
http://localhost:3000
Dependencies install automatically on first run.
- Open NexChat in your browser.
- Create an account with a username and password.
- Search for other users by name or phone number.
- Add them as a contact and start chatting.
- Send text, images, videos, or any files.
- Right-click or long-press any message for reply, edit, delete, react, and info options.
- Share your Local IP or Ngrok link so others can join.
Share the IP address shown in the app welcome screen:
http://192.168.x.x:3000
- Sign up free at https://ngrok.com
- Copy your authtoken from the Ngrok dashboard
- Open
server.jsand paste it on line 6:
const NGROK_AUTHTOKEN = "your_token_here";- Restart the server โ your public Ngrok URL appears instantly in the app.
- 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
- HTML5
- CSS3
- JavaScript (ES6+)
- Node.js
- Express.js
- Socket.IO
- Multer
- Bcryptjs
- Ngrok
- 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
This project is licensed under the MIT License.
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.