A lightning-fast, ephemeral chat application where conversations vanish when you leave
- ⚡ Instant Access – No registration or login required
- 🏠 Room-Based Chat – Create or join any room with just a name
- 👻 Ephemeral Messages – All messages disappear when you leave the room
- 🔒 Unique Usernames – Username validation prevents impersonation within rooms
- 🔄 Real-time Messaging – Powered by Socket.IO for instant communication
- 👥 Live User List – See who's currently in your room
- ⏰ Message Timestamps – Know exactly when messages were sent
- 📱 Responsive Design – Works seamlessly across all devices
- 🎨 Modern UI – Clean, intuitive WhatsApp-inspired interface
- 🚪 Join/Leave Notifications – System alerts when users enter or exit
- 🔄 Auto-Reconnect – Seamless reconnection on network interruptions
🖥️ Frontend (Vercel): https://flash-chat-henna.vercel.app/
🌐 Backend (Render): https://flashchat-lhed.onrender.com
FlashChat is built around the philosophy of truly temporary communication:
- No Accounts – Just pick a username and room name
- No History – Messages exist only while you're in the room
- No Persistence – Leave the room, lose the conversation
- Maximum Privacy – Nothing is stored permanently
- Instant Connection – Start chatting in seconds
Perfect for:
- Quick team discussions
- Temporary project coordination
- Private conversations that shouldn't leave traces
- Anonymous group chats
- Brainstorming sessions
- Frontend: HTML5, CSS3, JavaScript (ES6)
- Backend: Node.js, Express.js, Socket.IO
- Real-time Communication: WebSocket connections
- Deployment: Vercel (Frontend), Render (Backend)
- Version Control: Git & GitHub
- Username Uniqueness – Prevents impersonation within rooms
- Input Validation – Sanitized usernames and messages
- Session Verification – Server validates all user actions
- Connection Authentication – Messages tied to socket connections
- XSS Protection – HTML escaping for all user content
FlashChat/
├── public/ # Root folder
│ ├── index.html # Main HTML structure
│ ├── FlashChat.css # Styling and animations
│ └── FlashChat.js # Client-side JavaScript with validation
├── server/ # Backend files
│ └── server.js # Express server with Socket.IO and security
├── assets/
│ ├── login-page.png
│ ├── chat-interface.png
├── package.json # Project dependencies and scripts
├── vercel.json # Vercel deployment configuration
└── README.md # Documentation
-
Clone the repository
git clone https://github.com/the-vishh/FlashChat.git cd FlashChat
-
Install dependencies
npm install
-
Run the development server
npm start
-
Open your browser at
http://localhost:3000
-
Start chatting!
- Enter any username
- Join or create a room
- Start your ephemeral conversation
Service | Environment | URL |
---|---|---|
Backend | Production | https://flashchat-lhed.onrender.com |
Frontend | Production | https://flash-chat-henna.vercel.app/ |
Local | Development | http://localhost:3000 |
# Deploy to Vercel
vercel --prod
- Connected to GitHub for automatic deployments
- Environment: Node.js
- Build Command:
npm install
- Start Command:
node server/server.js
We welcome contributions! Here's how to get started:
- Fork the project
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Test thoroughly
npm start # Test in multiple browsers/devices
- Commit your changes
git commit -m "Add amazing feature: brief description"
- Push and create a pull request
- Use GitHub Issues
- Include steps to reproduce
- Mention browser/device details
- Check existing issues first
- Explain the use case
- Consider the ephemeral philosophy
Client → Server:
join-room
- Join a chat roomchat-message
- Send a messageleave-room
- Leave current room
Server → Client:
join-success
- Room join confirmedusername-taken
- Username conflict erroruser-joined
- Someone joined the roomuser-left
- Someone left the roomnew-message
- New message received
GET /
- Serve main applicationGET /api/stats
- Get server statistics (optional)
PORT=3000 # Server port (default: 3000)
NODE_ENV=production # Environment mode
Update the Socket.IO connection URL in FlashChat.js
:
const socket = io("your-backend-url-here");
This project is licensed under the MIT License. See the LICENSE file for details.
Built with ❤️ by @the-vishh
FlashChat - Where conversations are as temporary as lightning ⚡
If you find FlashChat useful, please consider:
- ⭐ Starring this repository
- 🍴 Forking for your own projects
- 🐛 Reporting bugs or suggesting features
- 💬 Sharing with others who need ephemeral chat
git add .
git commit -m "Update to FlashChat with enhanced security and ephemeral messaging"
git push origin main