The heartbeat of real-time communication - A modern, WhatsApp-inspired chat application built with Node.js, Express, and Socket.IO.
- π Real-time messaging with Socket.IO
- π¨ WhatsApp-inspired design with authentic styling
- π Dark mode support with smooth transitions
- π€ User avatars with Font Awesome icons
- β° Message timestamps for better conversation tracking
- π± Mobile responsive design for all devices
- βοΈ Message bubbles with proper alignment (sender right, receiver left)
- π Username display for easy user identification
- β¨οΈ Keyboard shortcuts (Enter to send messages)
- πͺ Smooth animations for enhanced user experience
- Backend: Node.js, Express.js
- Real-time Communication: Socket.IO
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Icons: Font Awesome
- Styling: CSS Grid & Flexbox
Before running PulseChat, make sure you have:
- Node.js (v14.0.0 or higher)
- npm (v6.0.0 or higher)
git clone https://github.com/akashasahu07/pulsechat.git
cd pulsechatnpm init -y
npm install express socket.ioPulseChat/
βββ server.js # Express server with Socket.IO
βββ package.json # Project dependencies
βββ public/
βββ index.html # Main HTML file
βββ style.css # WhatsApp-style CSS
βββ script.js # Client-side JavaScript
node server.jsNavigate to http://localhost:3000 and start chatting!
// Express server with Socket.IO integration
// Handles real-time message broadcasting
// Serves static files from public directory- Clean, semantic HTML structure
- Font Awesome icons integration
- Responsive meta tags
- Dark mode toggle button
- WhatsApp-inspired color scheme
- Dark mode theme support
- Mobile-responsive design
- Smooth animations and transitions
- Socket.IO client implementation
- Real-time message handling
- Dark mode functionality
- User interaction management
- Primary Green:
#075e54(Headers) - Light Green:
#dcf8c6(Sent messages) - White:
#ffffff(Received messages) - Dark Theme:
#0b141a(Dark background)
- Font: System fonts (-apple-system, BlinkMacSystemFont, Segoe UI)
- Message Text: 14px
- Username: 12px, bold
- Timestamp: 11px, muted
- Desktop: > 768px (Full features)
- Mobile: β€ 768px (Optimized layout)
PulseChat includes a beautiful dark mode that:
- Transforms all UI elements
- Maintains readability and contrast
- Provides smooth transitions
- Remembers user preference during session
Edit the CSS variables in style.css:
/* Light mode colors */
.message.sent .message-bubble {
background: #your-color; /* Change sent message color */
}
/* Dark mode colors */
body.dark-mode .message.sent .message-bubble {
background: #your-dark-color; /* Change dark mode color */
}- Emoji Support: Integrate emoji picker library
- File Sharing: Add file upload functionality
- Chat Rooms: Implement multiple chat rooms
- User Authentication: Add login system
- User authentication system
- Private messaging
- Emoji picker
- File and image sharing
- Message search functionality
- Chat history persistence
- Push notifications
- Video/Voice calling integration
- β‘ Real-time latency: < 50ms
- π± Mobile optimized: Responsive design
- π¨ Smooth animations: 60fps transitions
- πΎ Lightweight: Minimal dependencies
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Your Name
- GitHub: @akashasahu07
- LinkedIn: /in/akashasahu07
- WhatsApp for design inspiration
- Socket.IO team for excellent real-time communication library
- Font Awesome for beautiful icons
- Express.js community for the robust web framework
If you have any questions or need help with PulseChat, please:
- Create an issue on GitHub
- Email: akashasahu2001@gmail.com
PulseChat - Feel the pulse of every conversation