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
ok who's ready to actually ship this feature tonight 👀
I've been in #general since 8, just watching honestly
reacted without saying a word, love that for us
someone's definitely lurking in here rn, the room count doesn't add up 👻
Under the hood
Small stack, deliberate mechanics
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=trueto the room URL to lurk invisibly
# 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