Skip to content

Zie619/silento-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Silento - Anonymous Chat App

A modern, anonymous peer-to-peer chat application with iOS-style design and native iOS app support.

πŸš€ Features

  • Anonymous Messaging: No registration required, completely anonymous
  • Ephemeral Rooms: Rooms expire after 5 minutes of inactivity
  • Real-time Communication: WebSocket-based instant messaging
  • Media Sharing: Share photos, videos, audio, and files
  • iOS-Style UI: Beautiful iOS-inspired design with dark mode
  • Native iOS App: WKWebView-based iOS app for device testing
  • P2P Architecture: No data stored on servers, direct peer communication

πŸ—οΈ Architecture

Backend (Node.js + TypeScript)

  • Express.js server with WebSocket support
  • Room-based chat system with automatic cleanup
  • Rate limiting and security features
  • File sharing through WebSocket messages
  • CORS enabled for cross-origin requests

Frontend (React + TypeScript)

  • React 19 with modern hooks
  • Vite for fast development and building
  • iOS-style CSS with system colors and typography
  • WebSocket client for real-time communication
  • Media capture and file upload support

iOS App (Swift + WKWebView)

  • Native iOS wrapper for the web app
  • WKWebView with JavaScript bridge
  • Camera/microphone permissions handling
  • iOS safe area support
  • App Store ready configuration

πŸ“± Screenshots

The app features a beautiful iOS-style interface with:

  • Dark mode design with iOS system colors
  • Smooth animations and transitions
  • Haptic feedback simulation
  • iOS typography and spacing
  • Safe area handling for modern devices

πŸ› οΈ Installation & Setup

Prerequisites

  • Node.js 18+ and npm
  • Xcode 14+ (for iOS development)
  • iOS 15+ device or simulator

Quick Start

  1. Clone the repository:

    git clone <repository-url>
    cd MobileMessenger
  2. Install dependencies:

    npm install
  3. Start the development servers:

    npm run dev

    This starts both the backend (port 5000) and frontend (port 3000).

  4. Open in browser: Navigate to http://localhost:3000

iOS App Setup

  1. Open the Xcode project:

    open ios/Silento.xcodeproj
  2. Configure signing:

    • Select your Apple Developer Team
    • Ensure bundle identifier is unique
  3. Run on device:

    • Connect your iOS device
    • Build and run (Cmd+R)

See ios/README.md for detailed iOS setup instructions.

🎯 Usage

Creating a Room

  1. Click "Create Room"
  2. Share the 6-character room code with others
  3. Start chatting when others join

Joining a Room

  1. Click "Join Room"
  2. Enter the 6-character room code
  3. Start chatting immediately

Features

  • Text Messages: Type and send instant messages
  • Media Sharing: Upload photos, videos, and files
  • Camera: Take photos directly in the app
  • Voice Messages: Record and share audio
  • Real-time Notifications: See when users join/leave

πŸ”§ Development

Available Scripts

# Start both servers
npm run dev

# Start backend only
npm run server

# Start frontend only
npm run client

# Build for production
npm run build

# Preview production build
npm run preview

Project Structure

MobileMessenger/
β”œβ”€β”€ server/                 # Backend (Node.js + TypeScript)
β”‚   β”œβ”€β”€ index.ts           # Main server file
β”‚   β”œβ”€β”€ routes.ts          # API routes
β”‚   β”œβ”€β”€ websocketHandler.ts # WebSocket logic
β”‚   └── roomManager.ts     # Room management
β”œβ”€β”€ src/                   # Frontend (React + TypeScript)
β”‚   β”œβ”€β”€ components/        # React components
β”‚   β”œβ”€β”€ hooks/            # Custom hooks
β”‚   β”œβ”€β”€ services/         # API services
β”‚   β”œβ”€β”€ types/            # TypeScript types
β”‚   └── index.css         # iOS-style CSS
β”œβ”€β”€ ios/                  # iOS App (Swift)
β”‚   └── Silento/          # Xcode project
└── public/               # Static assets

Key Technologies

  • Backend: Node.js, Express, WebSocket (ws), TypeScript
  • Frontend: React 19, Vite, TypeScript
  • iOS: Swift, WKWebView, iOS 15+
  • Styling: CSS with iOS design system
  • Real-time: WebSocket for instant messaging

πŸ”’ Security Features

  • Rate Limiting: Prevents spam and abuse
  • Input Validation: Sanitizes all user inputs
  • CORS Protection: Configured for secure cross-origin requests
  • No Data Persistence: Messages are not stored on servers
  • Room Expiration: Automatic cleanup of inactive rooms
  • iOS Permissions: Proper camera/microphone permission handling

🌐 Deployment

Web App Deployment

  1. Build the project:

    npm run build
  2. Deploy to your hosting service:

    • Upload dist/ folder for frontend
    • Deploy server/ folder for backend
    • Configure environment variables

iOS App Store

  1. Update production URL in ViewController.swift
  2. Configure App Transport Security for HTTPS
  3. Add app icons and screenshots
  4. Submit to App Store following Apple guidelines

🀝 Contributing

  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

πŸ“„ License

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

πŸ™ Acknowledgments

  • Apple for iOS design inspiration
  • React and Vite teams for excellent development tools
  • WebSocket community for real-time communication standards

πŸ“ž Support

If you encounter any issues:

  1. Check the iOS README for iOS-specific troubleshooting
  2. Ensure all dependencies are installed correctly
  3. Verify that ports 3000 and 5000 are available
  4. Check that your device and development machine are on the same network

Silento - Anonymous ephemeral messaging for the modern web and iOS.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published