Skip to main content
Raffi is a modern, cross-platform streaming application built with modern web technologies. It provides a Netflix-like experience while leveraging the Stremio addon ecosystem for content discovery and streaming.

What is Raffi?

Raffi is inspired by Stremio and designed to be a faster, more beautiful alternative with enhanced features. Like Stremio, Raffi uses community addons to aggregate streaming sources, but goes beyond with:
  • Reimagined interface with smooth animations
  • Improved performance
  • Synchronized watch parties
  • Enhanced progress tracking
  • Discord Rich Presence integration
  • Cross-platform support (Windows, macOS, Linux, iOS, Android)

Architecture

Raffi is a monorepo containing five main projects:

Desktop App (raffi-desktop/)

  • Framework: Electron 40 with Svelte 5 and TypeScript
  • Platforms: Windows, macOS, Linux
  • Features: Full desktop experience with watch parties, Discord integration, local file playback
  • Build Tool: electron-builder for multi-platform releases
  • Video Player: HLS.js for adaptive streaming
  • Key Dependencies:
    • @supabase/supabase-js - Database and authentication
    • convex - Real-time data synchronization
    • hls.js - Video playback
    • @ryuziii/discord-rpc - Discord integration
    • lucide-svelte - Icons

Mobile App (raffi-mobile/)

  • Framework: React Native with Expo SDK 54
  • Platforms: iOS and Android
  • Features: Browse content, search, continue watching, native video playback
  • Architecture: Expo Router for file-based routing, new architecture enabled
  • State Management: Zustand
  • Sync: Shares authentication and watch progress with desktop via Supabase
  • Native Module: Custom torrent-streamer module for on-device streaming
  • Video Player: Expo Video (native)

Streaming Server (raffi-server/)

  • Language: Go 1.25+
  • Purpose: HLS transcoding server for video streams
  • Features: Torrent/magnet link streaming, Chromecast support, community addon integration
  • Deployment: Compiled binaries bundled with desktop app, can run standalone for mobile
  • Key Files:
    • main.go - Main server logic
    • cast.go - Chromecast functionality
    • clip.go - Video clipping
    • community_addons.go - Addon integration

Marketing Website (raffi-site/)

  • Framework: SvelteKit
  • Purpose: Marketing site and download page
  • Hosted at: raffi.al
  • Build Tool: Vite

Backend Functions (convex/)

  • Platform: Convex
  • Purpose: Real-time backend functions for watch parties, presence, and synchronization
  • Key Files:
    • raffi.ts - Main Convex functions
    • auth.config.ts - Authentication configuration
    • schema.ts - Database schema

Tech Stack Summary

Frontend Technologies

  • Desktop: Svelte 5, TypeScript, Tailwind CSS 4
  • Mobile: React 19, TypeScript, React Native 0.81
  • Website: SvelteKit, TypeScript

Backend Technologies

  • Streaming Server: Go 1.25+
  • Database: Supabase (PostgreSQL)
  • Real-time Backend: Convex
  • Authentication: Supabase Auth

Development Tools

  • Package Managers: Bun 1.0+ (desktop), npm (mobile/site)
  • Build Tools: Vite, electron-builder, Expo
  • Version Control: Git

Key Features

Stremio Addon Compatibility

  • Full support for Stremio addon protocol
  • Community addon ecosystem for movies and TV shows
  • Multiple addon sources simultaneously
  • Easy addon management and configuration

Video Playback

  • Custom video player with HLS support
  • Multiple quality selection
  • Subtitle parsing (SRT/VTT)
  • Audio track switching
  • Picture-in-picture and fullscreen support

Watch Parties

  • Real-time synchronization via Convex
  • WebSocket-based state management
  • Host/participant role system
  • Chat and presence indicators
  • Automatic reconnection

Cross-Device Synchronization

  • Shared authentication via Supabase across desktop and mobile
  • Watch progress sync - start on desktop, continue on mobile
  • Library sync - custom lists and favorites across devices
  • Addon settings available on all platforms

Development Philosophy

Raffi prioritizes:
  1. Performance - Fast, responsive UI with smooth animations
  2. User Experience - Beautiful, intuitive interface
  3. Cross-Platform - Consistent experience across all platforms
  4. Open Ecosystem - Full compatibility with Stremio addons
  5. Modern Stack - Latest web technologies and best practices

Next Steps

Setup Guide

Set up your development environment and run Raffi locally

Project Structure

Explore the codebase organization and key directories

Build docs developers (and LLMs) love