Real-time · rooms · reactions · one toggle to disappear

Chat live. React live.
Or don't exist at all.

NexTalk is a browser-based real-time chat app. Pick a username, drop into a room, and talk instantly — multiple rooms, multiple people, zero setup. Built on Node.js and Socket.IO, with a presence system that knows exactly who to tell what.

The X Factor

Two people can read the same room. Only one of them is really there.

👻

Ghost mode

Append ?ghost=true to a room URL and you join as a silent observer. You see every message live, as it happens — but you never show up in the online-users list, and no one gets a “joined the room” notice for you.

This isn't a client-side trick. The server tracks each socket's presence flag independently and only broadcasts presence events — join, leave, user list updates — to sockets that should see them. Ghosts still receive every chat message event; they're simply excluded from the user list broadcast. One toggle flips you back to visible, and the room immediately knows you're there.

⚡

Live reactions

Every message can be reacted to with 👍 ❤️ or 😂. Counts update for everyone in the room in real time, no page refresh, no polling — a reaction event fires, the server updates its in-memory count for that message, and rebroadcasts the new total to the whole room instantly.

It turns a chat log into something closer to a shared, living surface — you can feel a room agree, laugh, or go quiet in real time, the same way you'd feel it in person.

Preview

Inside room #launch-night

localhost:3000/room/launch-night
Online — 4priyadev_marcusquinnl4ur3n1 lurking · not shown
priya9:41 PM

ok who's ready to actually ship this feature tonight 👀

😂2
dev_marcus9:41 PM

I've been in #general since 8, just watching honestly

👍3
quinn9:42 PM

reacted without saying a word, love that for us

❤️1😂1
l4ur3n9:42 PM

someone's definitely lurking in here rn, the room count doesn't add up 👻

someone is reading this room right now, invisibly
Message #launch-night
Send

Under the hood

Small stack, deliberate mechanics

Node.jsExpressSocket.IOWebSocketsSelective BroadcastingIn-memory Reaction StatePresence Tracking

Run it

Two commands. That's the whole setup.

NexTalk runs on plain Node.js with Express serving the client and Socket.IO handling every real-time event — no build step, no database, no config. Clone it, install, and it's live on your machine in under a minute.

  • →Open localhost:3000, enter a username and room name
  • →Chat live, react to messages, watch presence update instantly
  • →Add ?ghost=true to the room URL to lurk invisibly
terminal
# clone & enter the project
git clone https://github.com/akshatgcodes/NexTalk.git
cd NexTalk

# install dependencies
npm install

# start the server
node server.js

# → listening on http://localhost:3000