Skip to content

Leptons1618/streamfusion

Repository files navigation

StreamFusion

Open-source, no-account, synchronized watch parties across platforms.

Project Structure

``` streamfusion/ ├── app/ # Expo React Native app │ ├── _layout.tsx # Root layout │ ├── index.tsx # Home screen │ └── room/[id].tsx # Room screen ├── src/ │ ├── components/ # Reusable UI components │ ├── screens/ # Screen components │ ├── store/ # Zustand state management │ ├── services/ # WebRTC, Signal, API services │ ├── hooks/ # Custom React hooks │ ├── db/ # Local storage & database │ ├── types/ # TypeScript type definitions │ └── utils/ # Utility functions ├── server/ # Node.js signal server │ └── src/ │ └── index.ts # WebSocket server └── docs/ # Documentation ```

Getting Started

Prerequisites

  • Node.js 18+
  • Expo CLI
  • npm or yarn

Installation

  1. Install dependencies: ```bash npm install cd server && npm install && cd .. ```

  2. Start the signal server: ```bash npm run dev:server ```

  3. Start the Expo app: ```bash npm start ```

Architecture

Client-Server Communication

  • WebSocket: Room creation, peer discovery, signaling
  • WebRTC DataChannels: Real-time sync, chat, queue control
  • Local Storage: Room history, preferences, offline state

State Management

  • Zustand: Global room and sync state
  • React Query: Server state and caching
  • AsyncStorage: Persistent local data

Media Support

  • YouTube (embedded)
  • Twitch (embedded)
  • HLS streams
  • MP4 files

Features

  • ✅ Create/Join rooms via code
  • ✅ Real-time playback sync (±1s drift)
  • ✅ Chat system
  • ✅ Media queue management
  • ✅ Peer mesh topology
  • ✅ Offline recovery
  • ✅ No accounts required
  • ✅ Privacy-first design

Development

Running Tests

```bash npm test ```

Type Checking

```bash npm run type-check ```

Linting

```bash npm run lint ```

Deployment

Mobile (EAS)

```bash eas build --platform ios eas build --platform android ```

Server (Docker)

```bash docker build -t streamfusion-server ./server docker run -p 3001:3001 streamfusion-server ```

License

MIT - See LICENSE file for details

Contributing

Contributions welcome! Please read CONTRIBUTING.md first.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors