PulseChat is a real-time anonymous chatroom application built using Express and WebSockets (express-ws). The platform enables instant topic-based conversations without requiring user accounts or identity storage.
PulseChat provides:
- Real-time messaging via WebSockets
- Dynamic room-based conversations
- Anonymous participation (no authentication layer)
- Live member presence updates
- Optional server-generated joke messages
- Responsive modern UI
- Animated canvas-based background
graph TD
A[Root] --> B[server.js]
A --> C[app.js]
A --> D[Room.js]
A --> E[ChatUser.js]
A --> F[jokes.js]
A --> G[static/]
G --> H[css/]
H --> I[styles.css]
H --> J[tailwind.css]
G --> K[js/]
K --> L[chat.js]
K --> M[animateBG.js]
K --> N[features.js]
G --> O[index.html]
G --> P[chat.html]
style A fill:#1e3a8a,stroke:#3b82f6,stroke-width:2px,color:#fff
style G fill:#7c3aed,stroke:#a855f7,stroke-width:2px,color:#fff
style H fill:#059669,stroke:#10b981,stroke-width:2px,color:#fff
style K fill:#059669,stroke:#10b981,stroke-width:2px,color:#fff
PulseChat follows a WebSocket-driven event model.
sequenceDiagram
participant Client
participant WebSocket
participant ChatUser
participant Room
Client->>WebSocket: Establish connection
WebSocket->>ChatUser: Create user instance
Client->>ChatUser: Send JOIN event
ChatUser->>Room: Add member
Room->>All Clients: Broadcast join notification
Client->>ChatUser: Send CHAT event
ChatUser->>Room: Broadcast message
Room->>All Clients: Deliver message
Client->>ChatUser: Disconnect
ChatUser->>Room: Remove member
Room->>All Clients: Broadcast leave notification
sequenceDiagram
participant User
participant Browser
participant WebSocket
participant UI
User->>Browser: Open room URL
Browser->>User: Prompt for username
Browser->>WebSocket: Connect to room socket
WebSocket->>UI: Receive events
UI->>UI: Render chat messages
UI->>UI: Update member presence
UI->>UI: Display notifications
- Dynamic room creation via URL
- In-memory room registry
- Instant message broadcasting
- Server-sent events (notes, chat, members)
- Join / Leave detection
- Live member count updates
- Joke generation via external API
PulseChat is designed as an anonymous communication platform.
- No account system
- No identity persistence
- No message storage
- All sessions are temporary
- Node.js (v14 or higher)
- npm or yarn
- Clone the repository
git clone https://github.com/yourusername/pulsechat.git
cd pulsechat- Install dependencies
npm install- Start the server
npm start- Open your browser and navigate to
http://localhost:3000
- Home Page: Browse available chatrooms or create a custom room
- Join Room: Click on any room or create your own
- Enter Username: Provide a temporary username (not stored)
- Start Chatting: Send messages in real-time with other users
- Anonymous Chatting: No registration required
- Real-time Communication: Powered by WebSockets
- Dynamic Rooms: Create custom rooms on the fly
- Responsive Design: Works on desktop, tablet, and mobile
- Animated Background: Modern canvas-based animations
- Live Presence: See who's online in real-time
- Email: 2003abinashdash@gmail.com
- LinkedIn: AbiDev2003
- π Website Live Link: PulseChat
- Built with Express and WebSockets
- Icons by Lucide
- Map integration by OpenStreetMap
Β© 2026 PulseChat. All rights reserved.



