Skip to content

A privacy-focused, real-time chat web application inspired by modern messaging apps. Built with clean UI and smooth user experience.

Notifications You must be signed in to change notification settings

ismailkkaaa/whisper-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

39 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ฌ Whisper Chat

A beautiful, privacy-focused real-time chat application inspired by Instagram's design language. Built with vanilla JavaScript and modern web technologies.

Whisper Chat Banner

๐ŸŒŸ Features

๐Ÿ”’ Privacy & Security

  • End-to-end encrypted real-time messaging
  • No persistent data storage - session-based only
  • Secure WebSocket connections (WSS protocol)
  • Private room-based conversations

๐ŸŽจ Modern UI/UX

  • Instagram-inspired design with gradient color scheme
  • Fully responsive layout for all devices
  • Smooth animations and micro-interactions
  • Glassmorphism effects and modern shadows
  • Dark mode support (automatic system preference detection)

โšก Performance

  • Lightweight (~18 files total, no heavy frameworks)
  • Progressive Web App (PWA) support
  • Service Worker for offline capabilities
  • Optimized assets and fast loading times

๐Ÿ“ฑ Cross-Platform

  • Mobile-first design approach
  • Touch-friendly interfaces
  • Installable web application
  • Works on all modern browsers

๐Ÿš€ Getting Started

Prerequisites

  • Modern web browser (Chrome, Firefox, Safari, Edge)
  • Python 3.x (for local development server)

Installation

  1. Clone the repository:
git clone https://github.com/ismailkkaaa/whisper-chat.git
cd whisper-chat
  1. Start the development server:
python3 -m http.server 8080
  1. Open your browser: Navigate to http://localhost:8080

Quick Start

  1. Enter your name and room code on the landing page
  2. Click "Start Chatting" to join the room
  3. Begin chatting in real-time with others in the same room

๐Ÿ› ๏ธ Technical Architecture

Frontend Stack

  • HTML5 - Semantic markup structure
  • CSS3 - Modern styling with variables and animations
  • Vanilla JavaScript - ES6+ features without frameworks
  • WebSocket API - Real-time bidirectional communication

Key Technologies

  • Service Worker - Offline caching and PWA functionality
  • Web App Manifest - Installable application support
  • CSS Custom Properties - Dynamic theming capabilities
  • Flexbox/Grid - Modern layout systems

WebSocket Integration

  • Backend Endpoint: wss://whisper-chat.albasith399.workers.dev
  • Protocol: Custom JSON messaging protocol
  • Features:
    • Real-time message broadcasting
    • Typing indicators
    • User presence detection
    • Room-based isolation

๐Ÿ“ Project Structure

whisper-chat/
โ”œโ”€โ”€ index.html          # Landing page
โ”œโ”€โ”€ chat.html           # Main chat interface
โ”œโ”€โ”€ manifest.json       # PWA configuration
โ”œโ”€โ”€ service-worker.js   # Client-side caching
โ”œโ”€โ”€ css/
โ”‚   โ”œโ”€โ”€ base.css        # Global styles and variables
โ”‚   โ”œโ”€โ”€ landing.css     # Landing page styling
โ”‚   โ””โ”€โ”€ chat.css        # Chat interface styling
โ”œโ”€โ”€ js/
โ”‚   โ”œโ”€โ”€ landing.js      # Landing page functionality
โ”‚   โ””โ”€โ”€ chat.js         # Chat client logic
โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ icons/          # PWA app icons
โ”‚   โ”œโ”€โ”€ favicon.ico     # Website favicon
โ”‚   โ””โ”€โ”€ apple-touch-icon.png
โ””โ”€โ”€ README.md           # This file

๐ŸŽจ Design System

Color Palette

--ig-primary: #405de6    /* Primary brand color */
--ig-secondary: #5851db   /* Secondary accent */
--ig-accent: #833ab4     /* Gradient accent */
--ig-background: #fafafa  /* Page background */
--ig-card-bg: #ffffff    /* Card backgrounds */
--ig-text: #262626       /* Primary text */
--ig-text-secondary: #8e8e8e  /* Secondary text */
--ig-border: #dbdbdb     /* Border colors */

Typography

  • Font Family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto
  • Font Sizes: Responsive scaling from 14px to 24px
  • Line Height: 1.5 for optimal readability

Spacing System

  • Border Radius: 4px, 8px, 12px, 16px, 18px, 24px
  • Shadows: Light, medium, and heavy elevation levels
  • Transitions: 0.2s, 0.3s, 0.5s easing durations

๐Ÿ”ง Development

Local Development

# Start development server
python3 -m http.server 8080

# Or with Node.js
npx serve .

# Build and test
npm run build  # (if package.json exists)
npm run test   # (if test scripts exist)

Code Standards

  • CSS: BEM methodology for class naming
  • JavaScript: ES6+ features with modern best practices
  • HTML: Semantic markup with proper accessibility attributes
  • Performance: Optimized assets and minimal dependencies

Browser Support

  • Chrome 60+
  • Firefox 55+
  • Safari 12+
  • Edge 79+

๐Ÿ“ฑ PWA Features

Installation

The application can be installed as a standalone app:

  1. Visit the site in a supported browser
  2. Look for the install prompt or use browser menu
  3. Click "Install" to add to home screen

Offline Capabilities

  • Static assets cached via Service Worker
  • Basic functionality available offline
  • Automatic reconnection when online

๐Ÿ”’ Security Considerations

Data Handling

  • No server-side data persistence
  • Client-side session storage only
  • Messages are not stored permanently
  • Room-based message isolation

Communication Security

  • Secure WebSocket connections (WSS)
  • No sensitive data in URLs
  • Proper input sanitization
  • CSRF protection considerations

๐Ÿค Contributing

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Guidelines

  • Follow existing code style and conventions
  • Write clean, documented code
  • Test changes thoroughly
  • Update documentation as needed

๐Ÿ› Troubleshooting

Common Issues

WebSocket Connection Failed:

  • Check internet connectivity
  • Verify WebSocket endpoint availability
  • Clear browser cache and try again

Messages Not Sending:

  • Ensure you're connected to a room
  • Check browser console for errors
  • Verify WebSocket connection status

UI Display Issues:

  • Try refreshing the page
  • Clear browser cache
  • Check browser compatibility

Debugging Tips

// Enable debugging in console
localStorage.debug = 'whisper:*';

// Check WebSocket status
console.log('WebSocket readyState:', socket.readyState);

// Monitor network activity
// Use browser developer tools Network tab

๐Ÿ“ˆ Performance Metrics

Loading Times

  • First Contentful Paint: < 1.5 seconds
  • Time to Interactive: < 2.5 seconds
  • Bundle Size: < 100KB total

Optimization Techniques

  • Asset compression and minification
  • Lazy loading for non-critical resources
  • Efficient CSS and JavaScript
  • Service Worker caching strategies

๐ŸŒ Deployment

Hosting Options

  • Static hosting: Netlify, Vercel, GitHub Pages
  • Traditional servers: Apache, Nginx
  • Cloud platforms: AWS, Google Cloud, Azure

Environment Variables

# WebSocket endpoint configuration
WEBSOCKET_URL=wss://your-websocket-endpoint.com

# Analytics (optional)
GA_TRACKING_ID=UA-XXXXXXXX-X

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ‘ฅ Authors

  • ismailkkaaa - Lead Developer - GitHub
  • chriz-3656 - Contributor - GitHub

๐Ÿ™ Acknowledgments

  • Inspired by modern messaging applications
  • Instagram design language influence
  • Open source community contributions
  • Cloudflare Workers for WebSocket infrastructure

๐Ÿ”ฎ Upcoming Features

We're constantly working to improve Whisper Chat! Here are the exciting features planned for future releases:

๐ŸŽจ UI/UX Enhancements

  • Dark/Light Theme Toggle - Manual theme switching capability
  • Custom Emoji Picker - Integrated emoji support in messages
  • User Avatars - Profile picture support (Gravatar/custom uploads)
  • Enhanced Animations - Advanced micro-interactions and transitions

๐Ÿ› ๏ธ Core Functionality

  • File Sharing - Image and document sharing capabilities
  • Voice Messages - Audio recording and playback features
  • Message Search - Chat history search functionality
  • Message Editing/Deleting - User message management
  • User Mentions - @username tagging system

๐Ÿ”ง Technical Improvements

  • End-to-End Encryption - Enhanced client-side encryption
  • Push Notifications - Browser notifications for new messages
  • Enhanced Offline Support - Improved offline message queuing
  • Rate Limiting - Advanced spam prevention mechanisms

๐Ÿ“ฑ Mobile Experience

  • Native Mobile Apps - iOS and Android applications
  • Haptic Feedback - Tactile response integration
  • Biometric Authentication - Face/Fingerprint login options

๐ŸŒ Social Features

  • User Profiles - Detailed profile pages with status/bio
  • Friend System - Add/block contacts functionality
  • Group Chats - Multi-user rooms with admin controls
  • Presence Indicators - Online/away/busy status system

๐ŸŽฏ Advanced Features

  • Message Translation - Real-time language translation
  • Scheduled Messages - Time-based message sending
  • Chat Bots - Automated responses and moderation
  • Custom Themes - User-defined color schemes

๐Ÿ”’ Security & Privacy

  • Two-Factor Authentication - Enhanced account security
  • Message Expiration - Self-destructing messages
  • Privacy Controls - Granular permission settings

Have a feature suggestion? We'd love to hear from you! Open an issue or submit a pull request.

๐Ÿ“ž Support

For support, email support@whisper-chat.app or join our Discord community.


โญ Star this repository if you find it useful!

Made with โค๏ธ by the Whisper Chat team

About

A privacy-focused, real-time chat web application inspired by modern messaging apps. Built with clean UI and smooth user experience.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •