A black-and-white themed Tauri desktop streaming tracker with TMDB/OMDB integration, an inline video player, Supabase authentication, Netflix-style animations, and a built-in native ad/popup blocker. Track what you watch, save your favorites, and resume where you left off. The Electron shell remains temporarily available as a migration rollback path.
-
Download the DMG
- Click the macOS (.dmg) button above, or go to the Releases page and download
OpenCloud_3.6.2_universal.dmg
- Click the macOS (.dmg) button above, or go to the Releases page and download
-
Install the app
- Open the downloaded
OpenCloud.dmg - In the window that appears, drag the
OpenCloud.appicon onto the Applications folder shortcut - Eject the mounted disk
- Open the downloaded
-
Launch the app
- Open Finder > Applications and double-click OpenCloud
- First launch only: because the app is unsigned, macOS will show a security warning.
Right-clickOpenCloud.app→ Open → click Open in the dialog.
After this one-time step, you can open it normally from Spotlight or the Dock.
Note: Spotlight may take a few seconds to index the app after first launch.
-
Download the Installer
- Click the Windows (.exe) button above, or go to the Releases page and download
OpenCloud_3.6.2_x64-setup.exe
- Click the Windows (.exe) button above, or go to the Releases page and download
-
Run the installer
- Double-click the downloaded
OpenCloud.exe - Follow the on-screen setup wizard to complete installation
- Double-click the downloaded
-
Launch the app
- Once installed, open OpenCloud from your Desktop shortcut or the Start Menu
If you prefer to run the app from code or want to develop:
-
Download the ZIP
- Go to github.com/sebastianmiletic/opencloud
- Click the green <> Code button → Download ZIP
-
Unzip / extract the file and open the extracted folder
-
Install dependencies and start the Tauri app
npm install npm run tauri:dev
Install the platform prerequisites from the Tauri prerequisites guide first. Use
npm run checkfor the complete frontend and Rust test suite, ornpm run electron:devonly when validating the temporary Electron rollback build.
Note: Create
.envfrom.env.examplewhen building from a source checkout.
- Open the app — it launches in its own desktop window (no browser required)
- You will see a Sign In modal (mandatory — no close button). You must create an account or sign in to use the app
- Account creation requires: a username, an email, and a password (6+ characters)
- Email confirmation is OFF — accounts work immediately
- Hero carousel — Featured movies/shows at the top with auto-sliding slides
- Categories — "Popular Now", "Recently Released", "Star Wars Saga", and recommendation rows
- Continue Watching — Resume the current episode or start the next one after finishing
- Search — Type in the top-center search bar to find movies and TV shows
- Item Modal — Click any poster to see details, ratings, synopsis, and options to Watch Now or Add to Collection
- Home tab — Browse trending content
- Collection tab — Your saved movies/shows with folder support
- History tab — Movies and shows you've watched, with posters, ratings, and watch dates
- Click Watch Now on any item to open the inline player
- The current video source is shown in the top left of the player
- Next Episode button — Automatically skips to the next TV episode
- Episodes button — Opens a popover to choose any season/episode
- TV episodes auto-resume from where you left off
- Watch History — Items are automatically added to your History when you open the player
- Settings — Opens the settings modal
- Check for Updates — Opens an update modal showing if there's a new version and what changed
- Sign Out — Log out and return to the sign-in screen
Open Cloud/
├── index.html # Main app shell with all modals
├── styles.css # Main black-and-white theme styles
├── vite.config.js # Tauri frontend development and production build
├── .env # Local API configuration (never commit real secrets)
├── .env.example # Template for custom .env keys
├── version.json # App version metadata
├── icon.png # App icon (cloud, transparent background)
├── icon.icns # macOS app icon
├── icon.ico # Windows app icon
├── js/
│ ├── main.js # App entry point, auth, init
│ ├── bootstrap.js # Loads local dependencies and desktop configuration
│ ├── desktop.js # Shared Tauri/Electron desktop bridge
│ ├── updater.js # Signed Tauri update UI and restart flow
│ ├── auth.js # Supabase authentication (sign in / up / out / password)
│ ├── api.js # TMDB + OMDB fetch helpers
│ ├── ui.js # Home, search, item modals, collection, history
│ ├── player.js # Inline iframe player, episode picker, progress, history tracking
│ ├── config.js # API keys, providers, settings sync
│ ├── settings.js # Settings modal logic (general / themes / sources / blocker / stats / account)
│ ├── dev-panel.js # Owner-only Dev workspace, presence, and access enforcement
│ ├── storage.js # Supabase-backed storage with in-memory caching
│ ├── sync.js # Supabase database CRUD and authenticated RPC calls
│ ├── state.js # Central reactive state module
│ ├── hero.js # Hero carousel auto-slide + click handling
│ ├── blocker.js # Blocker settings UI and native policy synchronization
│ ├── utils.js # Toast, scroll lock, confirm dialog
│ ├── accounts.js # User avatar/name initializer
│ └── supabase.js # Watch sessions and stats aggregation
├── src-tauri/ # Primary Tauri/Rust desktop shell
│ ├── src/lib.rs # Window lifecycle, blocker policy, migration, updater
│ ├── src/blocker_init.js # All-frame popup/link/form/unload interception
│ └── tauri.conf.json # CSP, bundles, signing key, updater endpoint
├── electron/ # Temporary rollback and local-data export shell
│ ├── main.js # Electron lifecycle, migration export, legacy blocker
│ └── preload.js # Narrow Electron bridge
├── docs/
│ ├── supabase_schema.sql # SQL for creating Supabase tables
│ ├── SUPABASE_SETUP.md # Step-by-step Supabase setup guide
│ ├── MIGRATION.md # Existing data migration notes
│ └── TAURI_MIGRATION.md # Architecture, release signing, parity checklist
└── README.md # This file
- Search — Movies and TV shows via TMDB API
- Inline Player — Watch content with 7 different providers
- Netflix UI — Splash screen, hero carousel, smooth animations
- Ad/Popup Blocker — Rust-owned policy plus all-frame protection that blocks popups, untrusted navigation, popup links/forms, JavaScript URLs, and unload traps
- Continue Watching — Auto-saves TV progress by season/episode
- History — Auto-tracks every movie and show you open in the player, with poster, rating, and year
- Collections — Save items and organize with folders
- Supabase Auth — Email/password with session persistence
- One Account Per Email — Strictly enforced
- Usernames — Choose a display name during signup
- Account Actions — Change password, change email, delete account
- Owner Dev Workspace — Server-authorized account, installation, version, platform, and live-presence overview
- Access Control — Reversible suspension, forced sign-out, and an immutable access audit trail
- Private Profiles — Users can read only their own profile; owner views use restricted database functions
- Online Authorization — Signed-in clients revalidate access and report minimal installation presence
- General — Device layout (laptop / TV / phone), auto-play toggle
- Video Sources — Pick from 8 providers with available capability information
- Blocker — Toggle protection, configure rules, view block logs
- Stats — Watch heatmap, hours watched, movies/episodes count, current streak
- Account — Avatar upload, color presets, display name, email, password, account deletion
- Manual Update Check — Click "Check for Updates" in the account dropdown
- Cryptographically signed — Tauri verifies release signatures before installation
- Native install and restart — Download progress is shown in the existing modal, then the app installs and relaunches
| Name | Source | Quality | Subtitles |
|---|---|---|---|
| Nova | vidsrc.cc | 1080p | Yes |
| Helix | player.videasy.net | 4K | Yes |
| Plasma | vsembed.ru | Not specified | Not specified |
| Pulse | vidsrc.me | 1080p | Yes |
| Phantom | vidsrc.to | 1080p | No |
| Dossier | moviesapi.club | 720p | No |
| Zenith | vidsrc.su | 1080p | No |
| Vertex | vidlink.pro | 4K | Yes |
If you want to use your own Supabase project instead of the bundled one:
- Create a free project at supabase.com
- Go to Authentication > Providers > Email and enable it
- Turn Confirm email OFF
- Run
docs/supabase_schema.sql, then every migration insupabase/migrations/in filename order - Provision the sole Dev owner from the SQL Editor with
select private.provision_dev_owner('<owner email>'); - Copy your project URL and anon key into
.env - Restart the app
The owner email is production configuration. Do not commit it, a service-role key, or a user ID to the repository.
Private project.
