Prerequisites
Before you begin, ensure you have the following installed:Required
- Node.js 18+ or Bun 1.0+
- Download from nodejs.org or bun.sh
- The desktop app uses Bun, but npm also works
- Go 1.21+ (for the streaming server)
- Download from go.dev
- Required to build the server binary
- Git
- Download from git-scm.com
Optional
- Expo CLI (for mobile development)
- Install globally:
npm install -g expo-cli
- Install globally:
- Xcode (for iOS development on macOS)
- Android Studio (for Android development)
Clone the Repository
Desktop App Setup
The desktop app is built with Electron and Svelte 5.Desktop Development Commands
raffi-desktop/release/.
Mobile App Setup
The mobile app is built with React Native and Expo SDK 54.Configure streaming server
The mobile app requires the desktop server running for torrent streams.Update
STREAMING_SERVER in app/player.tsx with your local IP address:Mobile Development Commands
Production builds use Expo Application Services (EAS). You’ll need an Expo account to build for production.
Streaming Server Setup
The streaming server is typically built automatically by the desktop app, but you can build and run it standalone.The desktop app’s
electron:dev command automatically builds the server binary, so you typically don’t need to build it manually.Marketing Website Setup
The marketing website is built with SvelteKit.Website Development Commands
Convex Backend Setup
Convex provides real-time backend functions for watch parties and synchronization.Troubleshooting
Desktop App Won’t Start
- Ensure the server binary is built:
bun run server:build - Check that ports 5173 and 8080 are available
- Try running
bun run electron:dev:onlyif the server is already built
Mobile App Can’t Connect to Server
- Verify your local IP address in
app/player.tsx - Ensure the desktop server is running
- Check that your phone and computer are on the same network
- Disable any firewalls blocking port 8080
Go Build Fails
- Ensure Go 1.21+ is installed:
go version - Update Go modules:
go mod download - Check that your Go environment is properly configured
Expo Build Errors
- Clear Expo cache:
expo start -c - Reinstall dependencies:
rm -rf node_modules && npm install - Update Expo CLI:
npm install -g expo-cli@latest
Next Steps
Now that you have Raffi running locally, explore the project structure:Project Structure
Learn about the codebase organization and key directories