mirror of
https://github.com/Shik3i/KoalaSync.git
synced 2026-07-26 12:08:15 +00:00
854 lines
68 KiB
HTML
854 lines
68 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>KoalaSync | Sync Netflix, Emby, Jellyfin & Any Video with Friends – Browser Extension</title>
|
||
<meta name="description" content="Watch Netflix, Emby, Jellyfin, YouTube, Twitch and any HTML5 video in perfect sync with friends. KoalaSync is a privacy-first, open-source browser extension for Chrome and Firefox. Works on almost any site with a video element.">
|
||
|
||
<link rel="preload" href="style.css" as="style">
|
||
<link rel="stylesheet" href="style.css">
|
||
<link rel="icon" type="image/png" href="assets/logo.png">
|
||
<link rel="canonical" href="https://sync.koalastuff.net/">
|
||
<meta name="robots" content="index, follow">
|
||
<meta property="og:title" content="KoalaSync | Sync Netflix, Emby, Jellyfin & Any Video with Friends">
|
||
<meta property="og:description" content="Watch Netflix, Emby, Jellyfin, YouTube, Twitch and any HTML5 video in perfect sync. Privacy-first, open-source browser extension for Chrome & Firefox.">
|
||
<meta property="og:image" content="https://sync.koalastuff.net/assets/logo.png">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:url" content="https://sync.koalastuff.net/">
|
||
|
||
<script src="lang-init.js"></script>
|
||
|
||
<!-- Structured Data (Schema.org) for Rich Snippets -->
|
||
<script type="application/ld+json" id="schema-software">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "SoftwareApplication",
|
||
"name": "KoalaSync",
|
||
"operatingSystem": "Windows, macOS, Linux, ChromeOS",
|
||
"applicationCategory": "BrowserApplication",
|
||
"browserRequirements": "Google Chrome, Mozilla Firefox, Microsoft Edge, Opera, Brave",
|
||
"offers": {
|
||
"@type": "Offer",
|
||
"price": "0",
|
||
"priceCurrency": "EUR"
|
||
},
|
||
"description": "Watch Netflix, YouTube, Twitch, Jellyfin, Emby and any HTML5 video in perfect sync with friends. Open source, privacy-first, free.",
|
||
"softwareVersion": "1.9.3",
|
||
"license": "https://opensource.org/licenses/MIT"
|
||
}
|
||
</script>
|
||
</head>
|
||
<body>
|
||
|
||
<div class="bg-blobs">
|
||
<div class="blob blob-1"></div>
|
||
<div class="blob blob-2"></div>
|
||
<div class="blob blob-3"></div>
|
||
</div>
|
||
|
||
<nav>
|
||
<div class="container nav-content">
|
||
<div class="logo-area">
|
||
<img src="assets/logo.png" alt="KoalaSync Logo" width="40" height="40">
|
||
<span>KoalaSync</span>
|
||
</div>
|
||
<button class="hamburger" aria-label="Menu" aria-expanded="false">☰</button>
|
||
<div class="nav-links">
|
||
<a href="#features"><span lang="en">Features</span><span lang="de">Funktionen</span></a>
|
||
<a href="#how-it-works"><span lang="en">How it works</span><span lang="de">So funktioniert's</span></a>
|
||
<a href="https://github.com/Shik3i/KoalaSync" target="_blank" style="display: inline-flex; align-items: center; gap: 6px;">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="16" height="16" aria-hidden="true" style="display: block;"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.042 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
||
GitHub
|
||
</a>
|
||
<a class="lang-toggle" style="display: inline-flex; align-items: center; gap: 6px; cursor: pointer;">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="width: 16px; height: 16px; display: block;"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg>
|
||
EN/DE
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<header class="hero">
|
||
<div class="container hero-grid">
|
||
<div class="hero-text">
|
||
<div class="version-badge" data-reveal><span lang="en" class="version-text-en">v1.5.3 OUT NOW</span><span lang="de" class="version-text-de">v1.5.3 JETZT VERFÜGBAR</span></div>
|
||
<h1 data-reveal>
|
||
<span lang="en">Watch Together.<br>Sync Perfectly.</span>
|
||
<span lang="de">Gemeinsam schauen.<br>Perfekt synchron.</span>
|
||
</h1>
|
||
<h2 class="hero-subtitle" data-reveal>
|
||
<span lang="en">Your remote movie night without lags. No registration, no data collection. Just share a link and watch together.</span>
|
||
<span lang="de">Dein Kino-Abend auf Distanz. Keine Lags, keine Anmeldung. Einfach Link teilen und zusammen schauen.</span>
|
||
</h2>
|
||
<div class="cta-group" data-reveal>
|
||
<a href="https://chromewebstore.google.com/detail/koalasync/obbnmkmlaaddodakcbdljknjpagklifc" class="btn btn-primary">
|
||
<img src="assets/chrome.svg" alt="Chrome" width="20" height="20">
|
||
<span lang="en">Add to Chrome</span><span lang="de">Zu Chrome hinzufügen</span>
|
||
</a>
|
||
<a href="https://addons.mozilla.org/de/firefox/addon/koalasync/" class="btn btn-firefox">
|
||
<img src="assets/firefox.svg" alt="Firefox" width="20" height="20">
|
||
<span lang="en">Add to Firefox</span><span lang="de">Zu Firefox hinzufügen</span>
|
||
</a>
|
||
<a href="https://github.com/Shik3i/KoalaSync/releases" target="_blank" class="btn btn-secondary" style="display: inline-flex; align-items: center; gap: 8px;">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="20" height="20" aria-hidden="true" style="display: block;"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
||
GitHub Releases
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Interactive CSS Extension Mockup -->
|
||
<div class="hero-mockup-wrapper" data-reveal>
|
||
<div class="extension-mockup">
|
||
<div class="mock-header-row">
|
||
<h1><img src="assets/logo.png" alt="KoalaSync Logo">KoalaSync</h1>
|
||
<a href="https://github.com/Shik3i/KoalaSync" target="_blank" class="mock-version-link" title="Visit GitHub Repository">
|
||
<svg viewBox="0 0 16 16" fill="currentColor" style="width: 12px; height: 12px; display: block;"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
|
||
<span>v1.9.3</span>
|
||
</a>
|
||
</div>
|
||
<div class="mock-tabs">
|
||
<button class="mock-tab active" data-target="mock-room" title="Room settings and connection">Room</button>
|
||
<button class="mock-tab" data-target="mock-sync" title="Video sync controls and remote actions">Sync</button>
|
||
<button class="mock-tab" data-target="mock-settings" title="Extension preferences">Settings</button>
|
||
<button class="mock-tab" data-target="mock-dev" title="Advanced Diagnostics & Logs">Status</button>
|
||
</div>
|
||
<div class="mock-body">
|
||
<!-- ROOM TAB -->
|
||
<div id="mock-room" class="mock-screen active">
|
||
<div class="mock-joined-room" style="display: flex; justify-content: space-between; align-items: center; border-left: 4px solid var(--accent); padding: 8px 10px; background: var(--card); border-radius: 8px; margin-bottom: 12px;" title="The room you are currently connected to">
|
||
<div style="display: flex; flex-direction: column;">
|
||
<span style="font-size: 0.6rem; text-transform: uppercase; color: var(--text-muted); font-weight: 700; line-height: 1;"><span lang="en">Active Room</span><span lang="de">Aktiver Raum</span></span>
|
||
<span class="mock-room-name" style="font-weight: 700; color: var(--accent); font-size: 0.9rem; letter-spacing: 0.5px; margin-top: 2px;">brave-eagle-80</span>
|
||
</div>
|
||
<span class="mock-server-badge" style="font-size: 0.6rem; color: var(--text-muted);"><span lang="en">Official Server</span><span lang="de">Offizieller Server</span></span>
|
||
</div>
|
||
<div class="mock-card">
|
||
<div class="mock-label" title="Share this link with friends so they can join"><span lang="en">Invite Link</span><span lang="de">Einladungs-Link</span></div>
|
||
<div class="mock-invite-box">
|
||
<input type="text" class="mock-input" value="https://sync.koalastuff.net/join.html#join:brave-eagle-80:pass" readonly style="flex: 1;">
|
||
<button class="mock-btn" style="width: 40px; padding: 0.45rem 0; flex-shrink: 0; background: #334155;" title="Copy Invite Link">📋</button>
|
||
</div>
|
||
</div>
|
||
<div class="mock-card" style="margin-bottom: 12px;">
|
||
<div class="mock-label" title="Other users currently connected to this room"><span lang="en">Peers in Room</span><span lang="de">Teilnehmer im Raum</span></div>
|
||
<div class="mock-peer-list">
|
||
<div class="mock-peer-item">
|
||
<div class="mock-peer-header">
|
||
<span class="mock-peer-name">CoolUsername</span>
|
||
<span class="mock-peer-meta"><span lang="en">YOU</span><span lang="de">ICH</span></span>
|
||
</div>
|
||
<div class="mock-peer-tab">🎬 Stranger Things - S4E1</div>
|
||
<div class="mock-peer-status"><span style="color:#22c55e;">●</span> 0:55 • <span lang="en">Playing</span><span lang="de">Wiedergabe</span></div>
|
||
</div>
|
||
<div class="mock-peer-item">
|
||
<div class="mock-peer-header">
|
||
<span class="mock-peer-name">KoalaPC</span>
|
||
<span class="mock-peer-meta"><span lang="en">Peer</span><span lang="de">Partner</span></span>
|
||
</div>
|
||
<div class="mock-peer-tab">🎬 Stranger Things - S4E1</div>
|
||
<div class="mock-peer-status"><span style="color:#22c55e;">●</span> 0:55 • <span lang="en">Playing</span><span lang="de">Wiedergabe</span></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<button class="mock-btn" style="background:#ef4444; width:100%; border: none; padding: 10px; border-radius: 8px; color: white; font-weight: 700; cursor: pointer; border: 1px solid #ef4444;"><span lang="en">Leave Room</span><span lang="de">Raum verlassen</span></button>
|
||
</div>
|
||
|
||
<!-- SYNC TAB -->
|
||
<div id="mock-sync" class="mock-screen">
|
||
<div class="mock-form-group" style="margin-bottom: 12px;">
|
||
<label style="display: block; font-size: 11px; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; font-weight: 700;" title="Choose the browser tab containing the video to sync">
|
||
<span lang="en">Select Video</span><span lang="de">Video auswählen</span>
|
||
</label>
|
||
<select class="mock-input" style="width: 100%; box-sizing: border-box; background: var(--card); border: 1px solid #334155; color: white; padding: 8px; border-radius: 8px; font-family: inherit; font-size: 0.75rem; outline: none; cursor: default;">
|
||
<option>🎬 Stranger Things - S4E1</option>
|
||
</select>
|
||
</div>
|
||
|
||
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px;">
|
||
<label style="margin: 0; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: 700;">
|
||
<span lang="en">Remote Control</span><span lang="de">Fernsteuerung</span>
|
||
</label>
|
||
<button class="mock-btn" style="background:transparent; border: 1px solid #334155; border-radius: 6px; padding: 2px 6px; font-size: 0.65rem; cursor:default; opacity:0.8; color: var(--text-muted); display: flex; align-items: center; gap: 4px; white-space: nowrap;" title="Copy Invite Link">
|
||
<span>📋</span>
|
||
<span lang="en">Invite Link</span><span lang="de">Einladungs-Link</span>
|
||
</button>
|
||
</div>
|
||
<div style="display: flex; gap: 8px; margin-bottom: 12px;">
|
||
<button class="mock-btn mock-btn-play" style="flex: 1; background: #22c55e; color: white; padding: 8px; border-radius: 8px; font-weight: 700; border: none; cursor: pointer;" title="Send a Play command to everyone"><span lang="en">▶ Play</span><span lang="de">▶ Start</span></button>
|
||
<button class="mock-btn mock-btn-pause" style="flex: 1; background: #ef4444; color: white; padding: 8px; border-radius: 8px; font-weight: 700; border: none; cursor: pointer;" title="Send a Pause command to everyone"><span lang="en">⏸ Pause</span><span lang="de">⏸ Pause</span></button>
|
||
</div>
|
||
|
||
<div style="display: flex; gap: 8px; margin-bottom: 15px; align-items: stretch;">
|
||
<button class="mock-btn" style="background: linear-gradient(135deg, #6366f1, #a855f7); flex: 1; color: white; border: none; font-weight: 700; border-radius: 8px; padding: 8px; cursor: pointer;" title="Force all users to sync up">
|
||
<span lang="en">⚡ SYNC</span><span lang="de">⚡ SYNC</span>
|
||
</button>
|
||
<div class="mock-input" style="flex: 1; background: var(--card); border: 1px solid #334155; color: white; padding: 6px; border-radius: 8px; font-size: 0.75rem; display: flex; align-items: center; justify-content: space-between;" title="Choose sync target">
|
||
<span>
|
||
<span lang="en">Jump to Others</span><span lang="de">Zu anderen springen</span>
|
||
</span>
|
||
<span style="font-size: 0.5rem; opacity: 0.6;">▼</span>
|
||
</div>
|
||
</div>
|
||
|
||
<label style="display: block; font-size: 11px; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; font-weight: 700;" title="Shows the most recent play, pause, or seek command">
|
||
<span lang="en">Last Activity Status</span><span lang="de">Letzte Aktivität</span>
|
||
</label>
|
||
<div class="mock-card" style="margin-bottom: 15px; display: flex; flex-direction: column; gap: 6px;">
|
||
<div style="display: flex; justify-content: space-between; align-items: baseline;">
|
||
<span style="font-weight: 700; color: #ef4444; font-size: 11px;">PAUSE</span>
|
||
<span style="font-size: 9px; color: var(--text-muted);">CoolUsername @ 12:44:32</span>
|
||
</div>
|
||
<div style="display: grid; grid-template-columns: repeat(auto-fill, minmax(36px, 1fr)); gap: 5px; margin-top: 4px;">
|
||
<div style="display: flex; flex-direction: column; align-items: center;">
|
||
<div style="width: 18px; height: 18px; border-radius: 50%; background: var(--success); color: white; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: bold; margin-bottom: 1px;">✓</div>
|
||
<span style="font-size: 7px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 36px;">🐨 KoalaPC</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Episode Auto-Sync Lobby Status Mockup -->
|
||
<div class="mock-card" style="margin-bottom: 15px; border-left: 4px solid #fbbf24; background: var(--card); padding: 8px 10px; border-radius: 8px;">
|
||
<div style="display:flex; align-items:center; gap: 6px; margin-bottom: 4px;">
|
||
<span style="font-size: 0.8rem;">⏳</span>
|
||
<span style="font-weight: 700; color: #fbbf24; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.05em;">Episode Lobby</span>
|
||
</div>
|
||
<div style="font-size: 0.7rem; color: white; margin-bottom: 4px; font-weight: 600;">
|
||
🎬 Stranger Things - S4E2
|
||
</div>
|
||
<div style="font-size: 0.65rem; color: var(--text-muted); margin-bottom: 6px;">
|
||
<span lang="en">Waiting for 1 peer (KoalaPC)...</span><span lang="de">Warten auf 1 Partner (KoalaPC)...</span>
|
||
</div>
|
||
<button class="mock-btn" style="background: #334155; border: none; padding: 4px 8px; border-radius: 6px; color: white; font-weight: 600; font-size: 0.65rem; cursor: pointer; width: auto; display: block;" title="Cancel lobby and play anyway">
|
||
<span lang="en">Skip & Play anyway</span><span lang="de">Überspringen & abspielen</span>
|
||
</button>
|
||
</div>
|
||
|
||
<label style="display: block; font-size: 11px; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; font-weight: 700;" title="Other users currently connected to this room">
|
||
<span lang="en">Peers in Room</span><span lang="de">Teilnehmer im Raum</span>
|
||
</label>
|
||
<div class="mock-card" style="margin-bottom: 12px;">
|
||
<div class="mock-peer-list">
|
||
<div class="mock-peer-item">
|
||
<div class="mock-peer-header">
|
||
<span class="mock-peer-name">CoolUsername</span>
|
||
<span class="mock-peer-meta"><span lang="en">YOU</span><span lang="de">ICH</span></span>
|
||
</div>
|
||
<div class="mock-peer-tab">🎬 Stranger Things - S4E1</div>
|
||
<div class="mock-peer-status"><span style="color:#22c55e;">●</span> 0:55 • <span lang="en">Playing</span><span lang="de">Wiedergabe</span></div>
|
||
</div>
|
||
<div class="mock-peer-item">
|
||
<div class="mock-peer-header">
|
||
<span class="mock-peer-name">KoalaPC</span>
|
||
<span class="mock-peer-meta"><span lang="en">Peer</span><span lang="de">Partner</span></span>
|
||
</div>
|
||
<div class="mock-peer-tab">🎬 Stranger Things - S4E1</div>
|
||
<div class="mock-peer-status"><span style="color:#22c55e;">●</span> 0:55 • <span lang="en">Playing</span><span lang="de">Wiedergabe</span></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- SETTINGS TAB -->
|
||
<div id="mock-settings" class="mock-screen">
|
||
<div style="display: flex; align-items: center; justify-content: space-between; background: var(--card); padding: 8px 10px; border-radius: 8px; margin-bottom: 10px; border: 1px solid #334155;">
|
||
<label style="margin: 0; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: 700;" title="Username helps others identify you.">
|
||
<span lang="en">Your Username</span><span lang="de">Dein Benutzername</span>
|
||
</label>
|
||
<input type="text" class="mock-input" value="CoolUsername" readonly style="width: 110px; padding: 4px; text-align: right; background: transparent; border: none; color: var(--accent); font-weight: 700;">
|
||
</div>
|
||
|
||
<div style="display: flex; align-items: center; justify-content: space-between; background: var(--card); padding: 8px 10px; border-radius: 8px; margin-bottom: 8px; border: 1px solid #334155;">
|
||
<label style="margin: 0; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: 700; cursor: help;" title="Filters out non-video tabs and unrelated domains to keep the list clean">
|
||
<span lang="en">Hide Clutter Tabs</span><span lang="de">Noise-Filterung</span>
|
||
</label>
|
||
<label class="mock-toggle-switch">
|
||
<input type="checkbox" checked>
|
||
<span class="mock-slider"></span>
|
||
</label>
|
||
</div>
|
||
|
||
<div style="display: flex; align-items: center; justify-content: space-between; background: var(--card); padding: 8px 10px; border-radius: 8px; margin-bottom: 8px; border: 1px solid #334155;">
|
||
<label style="margin: 0; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: 700; cursor: help;" title="Pauses automatically and waits for all peers when an episode changes, then sync-starts together.">
|
||
<span lang="en">Auto-Sync Next Episode</span><span lang="de">Nächste Folge auto-syncen</span>
|
||
</label>
|
||
<label class="mock-toggle-switch">
|
||
<input type="checkbox" checked>
|
||
<span class="mock-slider"></span>
|
||
</label>
|
||
</div>
|
||
|
||
<div style="display: flex; align-items: center; justify-content: space-between; background: var(--card); padding: 8px 10px; border-radius: 8px; margin-bottom: 8px; border: 1px solid #334155;">
|
||
<label style="margin: 0; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: 700; cursor: help;" title="Automatically copies the invite link to your clipboard when creating a new room.">
|
||
<span lang="en">Auto-Copy Invite Link</span><span lang="de">Link auto-kopieren</span>
|
||
</label>
|
||
<label class="mock-toggle-switch">
|
||
<input type="checkbox" checked>
|
||
<span class="mock-slider"></span>
|
||
</label>
|
||
</div>
|
||
|
||
<div style="display: flex; align-items: center; justify-content: space-between; background: var(--card); padding: 8px 10px; border-radius: 8px; margin-bottom: 12px; border: 1px solid #334155;">
|
||
<label style="margin: 0; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: 700; cursor: help;" title="Shows native system notifications when someone joins/leaves or plays/pauses.">
|
||
<span lang="en">Browser Notifications</span><span lang="de">Browser-Meldungen</span>
|
||
</label>
|
||
<label class="mock-toggle-switch">
|
||
<input type="checkbox">
|
||
<span class="mock-slider"></span>
|
||
</label>
|
||
</div>
|
||
|
||
<div style="margin-top: 15px; padding-top: 8px; border-top: 1px solid #334155;">
|
||
<label style="display: block; font-size: 11px; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; font-weight: 700;" title="Tools for fixing connection issues">
|
||
<span lang="en">Troubleshooting</span><span lang="de">Fehlerbehebung</span>
|
||
</label>
|
||
<button class="mock-btn" style="background:#334155; width:100%; border: none; padding: 10px; border-radius: 8px; color: white; font-weight: 600; cursor: pointer; font-size: 11px;" title="Regenerate your internal ID and reconnect">
|
||
<span lang="en">Regenerate Peer ID</span><span lang="de">Peer ID regenerieren</span>
|
||
</button>
|
||
<p style="font-size: 9px; color: var(--text-muted); margin-top: 5px; text-align: center; margin-bottom: 0;">
|
||
<span lang="en">Use this if you see "Duplicate Identity" errors.</span>
|
||
<span lang="de">Nutze dies bei "Duplicate Identity" Fehlern.</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- DEV TAB -->
|
||
<div id="mock-dev" class="mock-screen">
|
||
<label style="display: block; font-size: 11px; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; font-weight: 700;" title="Current WebSocket connection state">
|
||
<span lang="en">Connection Status</span><span lang="de">Verbindungsstatus</span>
|
||
</label>
|
||
<div class="mock-card" style="display:flex; align-items:center; gap: 10px; margin-bottom: 12px;">
|
||
<span class="status-dot status-online" style="width: 8px; height: 8px; border-radius: 50%; display: inline-block; background: #22c55e; box-shadow: 0 0 8px #22c55e;"></span>
|
||
<span style="flex:1; font-size: 0.75rem; font-weight: 600; color: white;">
|
||
<span lang="en">Connected</span><span lang="de">Verbunden</span>
|
||
</span>
|
||
<button class="mock-btn" style="width: auto; padding: 4px 8px; font-size: 0.65rem; border: none; background: #334155; color: white; border-radius: 6px; cursor: pointer;" title="Copy logs to clipboard for sharing">
|
||
<span lang="en">Copy Logs</span><span lang="de">Logs kopieren</span>
|
||
</button>
|
||
</div>
|
||
|
||
<label style="display: block; font-size: 11px; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; font-weight: 700;" title="Technical details about the currently selected video element">
|
||
<span lang="en">Video Debug Info</span><span lang="de">Video-Debug-Info</span>
|
||
</label>
|
||
<div class="mock-card" style="font-size: 0.65rem; font-family: monospace; color: var(--text-muted); line-height: 1.4; margin-bottom: 12px;">
|
||
<div>readyState: HAVE_ENOUGH_DATA</div>
|
||
<div>seekDelta: 0.05s</div>
|
||
<div>buffered: 300.2s</div>
|
||
<div>engineState: <span style="color:#22c55e; font-weight:700;">SYNCED</span></div>
|
||
</div>
|
||
|
||
<label style="display: block; font-size: 11px; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; font-weight: 700;" title="Chronological log of all sync commands in the room">
|
||
<span lang="en">Full Action History</span><span lang="de">Aktivitätsverlauf</span>
|
||
</label>
|
||
<div class="mock-card" style="font-size: 0.65rem; color: var(--text-muted); line-height: 1.4; margin-bottom: 12px; max-height: 100px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px;">
|
||
<div style="display: flex; justify-content: space-between; border-bottom: 1px solid #334155; padding-bottom: 4px;">
|
||
<span>CoolUsername: PAUSE</span>
|
||
<span style="opacity: 0.5;">0:55</span>
|
||
</div>
|
||
<div style="display: flex; justify-content: space-between; padding-top: 2px;">
|
||
<span>KoalaPC: PLAY</span>
|
||
<span style="opacity: 0.5;">0:00</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px;">
|
||
<label style="margin: 0; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: 700;" title="Technical connection logs for debugging">
|
||
<span lang="en">Logs (Last 50)</span><span lang="de">Protokoll (Letzte 50)</span>
|
||
</label>
|
||
<button class="mock-btn" style="background:transparent; border:none; color:var(--accent); font-size:10px; cursor:default; padding: 0; font-weight: 700;" title="Clear log output">
|
||
<span lang="en">CLEAR</span><span lang="de">LÖSCHEN</span>
|
||
</button>
|
||
</div>
|
||
<div style="max-height: 120px; overflow-y: auto; font-size: 0.65rem; font-family: monospace; background: #000; padding: 8px 10px; border-radius: 8px; color: #ccc; line-height: 1.4;">
|
||
<div style="color:#22c55e;">[18:37:32] EVENT: PLAY -> ACK</div>
|
||
<div>[18:37:32] FORCE_SYNC -> 0.05s diff</div>
|
||
<div>[18:37:38] EVENT: PAUSE -> BROADCAST</div>
|
||
<div style="color:var(--text-muted);">[18:37:42] content_heartbeat: active</div>
|
||
</div>
|
||
|
||
<div style="margin-top: 16px; text-align: center; border-top: 1px solid rgba(255,255,255,0.05); padding-top: 10px; flex-shrink: 0;">
|
||
<a href="https://github.com/Shik3i/KoalaSync" target="_blank" style="color: var(--text-muted); text-decoration: none; font-size: 10px; opacity: 0.6; display: block;">GitHub Repository</a>
|
||
<div style="color: var(--text-muted); font-size: 9px; opacity: 0.4; margin-top: 4px;">v1.9.3</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</header>
|
||
|
||
<section class="compat-section">
|
||
<div class="container">
|
||
<img src="assets/PlatformJuggler_New.webp" alt="A cute koala juggling multiple browser tabs showing streaming platforms" class="compat-mascot" lang="en" width="300" height="233" loading="lazy" data-reveal>
|
||
<img src="assets/PlatformJuggler_New.webp" alt="Ein niedlicher Koala jongliert mit mehreren Browser-Tabs, auf denen verschiedene Streamingdienste laufen" class="compat-mascot" lang="de" width="300" height="233" loading="lazy" data-reveal>
|
||
<p class="compat-heading" data-reveal>
|
||
<span lang="en">Works on your favorite platforms</span>
|
||
<span lang="de">Funktioniert auf deinen Lieblingsplattformen</span>
|
||
</p>
|
||
<div class="compat-row" data-reveal>
|
||
<div class="compat-logo">
|
||
<img src="assets/netflix.svg" alt="Netflix" width="24" height="24">
|
||
<span>Netflix</span>
|
||
</div>
|
||
<div class="compat-logo">
|
||
<img src="assets/youtube.svg" alt="YouTube" width="24" height="24">
|
||
<span>YouTube</span>
|
||
</div>
|
||
<div class="compat-logo">
|
||
<img src="assets/twitch.svg" alt="Twitch" width="24" height="24">
|
||
<span>Twitch</span>
|
||
</div>
|
||
<div class="compat-logo">
|
||
<img src="assets/primevideo.svg" alt="Prime Video" width="24" height="24">
|
||
<span>Prime Video</span>
|
||
</div>
|
||
<div class="compat-logo">
|
||
<img src="assets/jellyfin.svg" alt="Jellyfin" width="24" height="24">
|
||
<span>Jellyfin</span>
|
||
</div>
|
||
<div class="compat-logo">
|
||
<img src="assets/emby.svg" alt="Emby" width="24" height="24">
|
||
<span>Emby</span>
|
||
</div>
|
||
<div class="compat-logo compat-more">
|
||
<span class="compat-more-icon">+</span>
|
||
<span lang="en">and many more</span><span lang="de">und viele mehr</span>
|
||
<div class="compat-tooltip">
|
||
<span lang="en">Works on almost any site with a video element</span>
|
||
<span lang="de">Funktioniert auf fast jeder Seite mit einem Video-Element</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="use-cases" class="use-cases-section">
|
||
<div class="container">
|
||
<h2 class="section-title" data-reveal style="text-align: center; font-size: 2.2rem; margin-bottom: 1rem;">
|
||
<span lang="en">Perfect for Any Occasion</span>
|
||
<span lang="de">Perfekt für jeden Anlass</span>
|
||
</h2>
|
||
<p class="section-subtitle" data-reveal style="text-align: center; color: var(--text-muted); margin-bottom: 3.5rem; max-width: 600px; margin-left: auto; margin-right: auto;">
|
||
<span lang="en">Whether near or far, KoalaSync brings people together around their favorite videos.</span>
|
||
<span lang="de">Ob nah oder fern, KoalaSync bringt Menschen bei ihren Lieblingsvideos zusammen.</span>
|
||
</p>
|
||
<div class="use-cases-grid">
|
||
<div class="use-case-card" data-reveal>
|
||
<img src="assets/PopcornFriends.webp" alt="Two cute koalas sitting together and sharing a bucket of popcorn" class="use-case-image" lang="en" width="272" height="150" loading="lazy">
|
||
<img src="assets/PopcornFriends.webp" alt="Zwei niedliche Koalas sitzen zusammen und teilen sich einen Eimer Popcorn" class="use-case-image" lang="de" width="272" height="150" loading="lazy">
|
||
<h3>
|
||
<span lang="en">Movie Night with Friends</span>
|
||
<span lang="de">Filmabend mit Freunden</span>
|
||
</h3>
|
||
<p lang="en">Sync your movies in real time and talk via Discord, Zoom, or your favorite voice call application. It feels just like sitting in the same room.</p>
|
||
<p lang="de">Synchronisiere eure Filme in Echtzeit und quatscht nebenbei auf Discord, Zoom oder im Tool eurer Wahl. Es fühlt sich an, als säßet ihr im selben Raum.</p>
|
||
</div>
|
||
<div class="use-case-card" data-reveal>
|
||
<img src="assets/RemoteProf.webp" alt="A koala professor presenting on a screen to two remote student koalas" class="use-case-image" lang="en" width="272" height="150" loading="lazy">
|
||
<img src="assets/RemoteProf.webp" alt="Ein Koala-Professor hält einen Vortrag auf einem Bildschirm vor zwei remote zugeschalteten Schüler-Koalas" class="use-case-image" lang="de" width="272" height="150" loading="lazy">
|
||
<h3>
|
||
<span lang="en">Remote Learning</span>
|
||
<span lang="de">Remote Learning</span>
|
||
</h3>
|
||
<p lang="en">Analyze online tutorials, lectures, or developer training streams together with classmates or colleagues. Pause and discuss complex steps in perfect harmony.</p>
|
||
<p lang="de">Analysiert Online-Tutorials, Vorlesungen oder Streams gemeinsam mit Mitschülern oder Kollegen. Pausiert und besprecht komplizierte Schritte in perfektem Sync.</p>
|
||
</div>
|
||
<div class="use-case-card" data-reveal>
|
||
<img src="assets/KoalaCupple_New.webp" alt="A cute koala couple watching together remotely; one is sitting at a PC and the other is in bed with a laptop, with flying hearts between them" class="use-case-image" lang="en" width="272" height="150" loading="lazy">
|
||
<img src="assets/KoalaCupple_New.webp" alt="Ein niedliches Koala-Pärchen schaut remote zusammen; einer sitzt am PC und sie liegt mit dem Laptop im Bett, während Herzen zwischen ihnen fliegen" class="use-case-image" lang="de" width="272" height="150" loading="lazy">
|
||
<h3>
|
||
<span lang="en">Long-Distance Relationships</span>
|
||
<span lang="de">Fernbeziehungen</span>
|
||
</h3>
|
||
<p lang="en">Bridge the distance and enjoy date nights. Experience every plot twist, laugh at the same jokes, and share emotional moments at the exact same millisecond.</p>
|
||
<p lang="de">Überbrückt die Distanz und genießt gemeinsame Date-Nächte. Erlebt jeden Plot-Twist, lacht über dieselben Witze und teilt emotionale Momente zur selben Millisekunde.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="features">
|
||
<div class="container">
|
||
<h2 style="font-size: 2.5rem; text-align: center; margin-bottom: 1rem;">
|
||
<span lang="en">Why KoalaSync?</span><span lang="de">Warum KoalaSync?</span>
|
||
</h2>
|
||
<p style="text-align: center; color: var(--text-muted); margin-bottom: 4rem;">
|
||
<span lang="en">Built for reliable sync, privacy-first design, and easy setup.</span>
|
||
<span lang="de">Entwickelt für zuverlässigen Sync, Datenschutz und einfache Einrichtung.</span>
|
||
</p>
|
||
|
||
<div class="features-grid">
|
||
<div class="feature-card" data-reveal>
|
||
<h3>
|
||
<span class="feature-icon">⚡</span>
|
||
<span lang="en">Full Control / Instant Sync</span>
|
||
<span lang="de">Volle Kontrolle & Echtzeit</span>
|
||
</h3>
|
||
<p lang="en">One pauses, everyone pauses. One seeks, everyone follows. Our two-phase sync protocol coordinates playback in real time across all participants.</p>
|
||
<p lang="de">Einer pausiert, alle pausieren. Einer spult, alle folgen. Unser Zwei-Phasen-Synchronisationsprotokoll koordiniert die Wiedergabe aller Teilnehmer in Echtzeit.</p>
|
||
</div>
|
||
<div class="feature-card" data-reveal>
|
||
<h3>
|
||
<span class="feature-icon">🎬</span>
|
||
<span lang="en">Endless Binge-Watching</span>
|
||
<span lang="de">Grenzenloses Bingen</span>
|
||
</h3>
|
||
<p lang="en">Autoplay in sync. KoalaSync automatically detects episode transitions and holds playback until all peers have successfully loaded the next video.</p>
|
||
<p lang="de">Nächste Episode startet für jeden zeitgleich. KoalaSync erkennt den Episodenwechsel und pausiert, bis jeder Teilnehmer das neue Video fertig geladen hat.</p>
|
||
</div>
|
||
<div class="feature-card" data-reveal>
|
||
<h3>
|
||
<span class="feature-icon">🛡️</span>
|
||
<span lang="en">Zero Accounts / Pure Privacy</span>
|
||
<span lang="de">Keine Accounts / Datenschutz</span>
|
||
</h3>
|
||
<p lang="en">No registration, no tracking, no bullshit. Just share a link and watch. The server runs entirely in RAM and purges your room when you leave.</p>
|
||
<p lang="de">Kein Login. Keine Daten. Einfach Link teilen und schauen. Der Server läuft flüchtig im RAM und löscht deinen Raum komplett nach dem Verlassen.</p>
|
||
</div>
|
||
<div class="feature-card" data-reveal>
|
||
<h3>
|
||
<span class="feature-icon">🌐</span>
|
||
<span lang="en">Universal HTML5 Support</span>
|
||
<span lang="de">Universeller HTML5-Support</span>
|
||
</h3>
|
||
<p lang="en">Works on YouTube, Twitch, Netflix, Jellyfin, Emby, and any standard webpage containing a HTML5 video element. Also compatible with custom self-hosted setups.</p>
|
||
<p lang="de">Unterstützt YouTube, Twitch, Netflix, Jellyfin, Emby und jede beliebige Webseite mit einem HTML5-Video-Tag. Ideal auch für eigene Medienbibliotheken.</p>
|
||
</div>
|
||
<div class="feature-card" data-reveal>
|
||
<h3>
|
||
<span class="feature-icon">🐳</span>
|
||
<span lang="en">Self-Hostable & Docker-Ready</span>
|
||
<span lang="de">Self-Hostable & Docker-Ready</span>
|
||
</h3>
|
||
<p lang="en">Our official servers are free and fast, but you <strong>can</strong> take full ownership if you want to. Launch your own private relay server in seconds via Docker.</p>
|
||
<p lang="de">Unsere Server sind kostenlos und schnell, aber du <strong>kannst</strong> auch die volle Kontrolle übernehmen, wenn du willst. Starte dein eigenes privates Relay in Sekunden via Docker.</p>
|
||
</div>
|
||
<div class="feature-card" data-reveal>
|
||
<h3>
|
||
<span class="feature-icon">🔗</span>
|
||
<span lang="en">Instant Invites / 1-Click Join</span>
|
||
<span lang="de">Direkte Einladungen & 1-Klick Beitritt</span>
|
||
</h3>
|
||
<p lang="en">No IP addresses or passwords to exchange. Share a generated invite link with your friends to let them join your room automatically with a single click.</p>
|
||
<p lang="de">Keine lästigen IPs oder Passwörter austauschen. Teile einfach einen Einladungslink mit deinen Freunden, um sie mit einem Klick in den Raum zu holen.</p>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</section>
|
||
|
||
<section id="comparison" class="comparison-section">
|
||
<div class="container">
|
||
<h2 class="section-title" data-reveal style="text-align: center; font-size: 2.2rem; margin-bottom: 1rem;">
|
||
<span lang="en">KoalaSync vs. Teleparty</span>
|
||
<span lang="de">KoalaSync vs. Teleparty</span>
|
||
</h2>
|
||
<p class="section-subtitle" data-reveal style="text-align: center; color: var(--text-muted); margin-bottom: 3.5rem; max-width: 600px; margin-left: auto; margin-right: auto;">
|
||
<span lang="en">See why open source, ad-free and privacy-first is the superior way to watch together.</span>
|
||
<span lang="de">Erfahre, warum Open Source, werbefrei und Datenschutz der bessere Weg zum gemeinsamen Schauen sind.</span>
|
||
</p>
|
||
|
||
<div class="comparison-table-wrapper" data-reveal>
|
||
<table class="comparison-table">
|
||
<thead>
|
||
<tr>
|
||
<th><span lang="en">Feature</span><span lang="de">Funktion</span></th>
|
||
<th class="highlight">KoalaSync</th>
|
||
<th>Teleparty</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="feat-name">
|
||
<strong><span lang="en">Cost / Paywalls</span><span lang="de">Kosten / Paywalls</span></strong>
|
||
<span class="feat-desc"><span lang="en">Premium subscriptions, hidden fees or locked features.</span><span lang="de">Premium-Abos, versteckte Kosten oder gesperrte Funktionen.</span></span>
|
||
</td>
|
||
<td class="check highlight">✔ <span lang="en">100% Free</span><span lang="de">100% Kostenlos</span></td>
|
||
<td class="cross">
|
||
✘ <span lang="en">Paid Tiers / Premium Locks</span><span lang="de">Premium-Abo / Paywalls</span>
|
||
<a href="https://www.teleparty.com/premium" target="_blank" rel="noopener noreferrer" class="source-link" title="See Teleparty Premium Pricing"><sup>[1]</sup></a>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="feat-name">
|
||
<strong><span lang="en">License / Code Auditable</span><span lang="de">Lizenz / Quellcode</span></strong>
|
||
<span class="feat-desc"><span lang="en">Whether the source code is open and freely auditable.</span><span lang="de">Ob der Quellcode quelloffen und frei einsehbar ist.</span></span>
|
||
</td>
|
||
<td class="check highlight">✔ <span lang="en">Open Source (MIT)</span><span lang="de">Open Source (MIT)</span></td>
|
||
<td class="cross">
|
||
✘ <span lang="en">Proprietary</span><span lang="de">Proprietär</span>
|
||
<a href="https://www.teleparty.com/privacy" target="_blank" rel="noopener noreferrer" class="source-link" title="See Teleparty Privacy Policy"><sup>[2]</sup></a>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="feat-name">
|
||
<strong><span lang="en">Self-Hosting</span><span lang="de">Self-Hosting</span></strong>
|
||
<span class="feat-desc"><span lang="en">Ability to deploy your own private relay server.</span><span lang="de">Möglichkeit, einen eigenen privaten Relay-Server zu betreiben.</span></span>
|
||
</td>
|
||
<td class="check highlight">✔ <span lang="en">Yes (Docker-ready)</span><span lang="de">Ja (Docker-bereit)</span></td>
|
||
<td class="cross">
|
||
✘ <span lang="en">No</span><span lang="de">Nein</span>
|
||
<a href="https://www.teleparty.com/privacy" target="_blank" rel="noopener noreferrer" class="source-link" title="See Teleparty Privacy Policy"><sup>[2]</sup></a>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="feat-name">
|
||
<strong><span lang="en">Privacy & Tracking</span><span lang="de">Datenschutz & Tracking</span></strong>
|
||
<span class="feat-desc"><span lang="en">Registration requirements, tracking cookies and analytics.</span><span lang="de">Registrierungszwang, Tracking-Cookies und Analysen.</span></span>
|
||
</td>
|
||
<td class="check highlight">✔ <span lang="en">Zero-Persistence (RAM-only)</span><span lang="de">Keine Speicherung (RAM-only)</span></td>
|
||
<td class="cross">
|
||
✘ <span lang="en">Google Analytics & Cookies</span><span lang="de">Google Analytics & Cookies</span>
|
||
<a href="https://www.teleparty.com/privacy" target="_blank" rel="noopener noreferrer" class="source-link" title="See Teleparty Privacy Policy"><sup>[2]</sup></a>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="feat-name">
|
||
<strong><span lang="en">Site Compatibility</span><span lang="de">Kompatibilität</span></strong>
|
||
<span class="feat-desc"><span lang="en">Supported websites and player compatibility.</span><span lang="de">Unterstützte Webseiten und Player-Kompatibilität.</span></span>
|
||
</td>
|
||
<td class="check highlight">✔ <span lang="en">Any HTML5 Video</span><span lang="de">Jedes HTML5-Video</span></td>
|
||
<td class="cross">
|
||
✘ <span lang="en">Supported sites only</span><span lang="de">Nur unterstützte Seiten</span>
|
||
<a href="https://www.teleparty.com/premium" target="_blank" rel="noopener noreferrer" class="source-link" title="See Teleparty Premium Platforms"><sup>[1]</sup></a>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="table-footnotes">
|
||
<p style="opacity: 0.55; font-size: 0.65rem; margin-bottom: 0.4rem; display: block;">
|
||
<span lang="en">* Comparison state: May 2026.</span>
|
||
<span lang="de">* Stand des Vergleichs: Mai 2026.</span>
|
||
</p>
|
||
<p>
|
||
<sup>[1]</sup>
|
||
<span lang="en">Official Teleparty Premium pricing and supported networks details:</span>
|
||
<span lang="de">Details zu Preisen und unterstützten Netzwerken von Teleparty Premium:</span>
|
||
<a href="https://www.teleparty.com/premium" target="_blank" rel="noopener noreferrer">teleparty.com/premium</a>
|
||
</p>
|
||
<p>
|
||
<sup>[2]</sup>
|
||
<span lang="en">Teleparty privacy policies and tracking data collection:</span>
|
||
<span lang="de">Datenschutzerklärung und Tracker-Erfassung von Teleparty:</span>
|
||
<a href="https://www.teleparty.com/privacy" target="_blank" rel="noopener noreferrer">teleparty.com/privacy</a>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="how-it-works" style="background: rgba(255,255,255,0.02)">
|
||
<div class="container">
|
||
<h2 style="font-size: 2.5rem; text-align: center; margin-bottom: 4rem;">
|
||
<span lang="en">Getting Started</span><span lang="de">Loslegen</span>
|
||
</h2>
|
||
|
||
<div class="steps">
|
||
<div class="step">
|
||
<div class="step-text" data-reveal>
|
||
<div class="step-num">01</div>
|
||
<h3><span lang="en">Install Extension</span><span lang="de">Erweiterung installieren</span></h3>
|
||
<p lang="en">Add KoalaSync to your browser from the Chrome Web Store, Firefox Add-ons, or download the latest developer ZIP from GitHub.</p>
|
||
<p lang="de">Füge KoalaSync aus dem Chrome Web Store, den Firefox Add-ons oder über die Entwickler-ZIP von GitHub zu deinem Browser hinzu.</p>
|
||
</div>
|
||
<!-- Custom Step 1 Illustration -->
|
||
<div class="step-illustration-1" data-reveal>
|
||
<div class="illus-browser-bar">
|
||
<div class="illus-browser-header">
|
||
<div class="illus-dots">
|
||
<span class="illus-dot"></span>
|
||
<span class="illus-dot"></span>
|
||
<span class="illus-dot"></span>
|
||
</div>
|
||
<div class="illus-address-bar"></div>
|
||
<div class="illus-extension-icon"><img src="assets/logo.png" alt="KoalaSync" width="12" height="12" style="width: 12px; height: 12px; display: block; object-fit: contain;"></div>
|
||
</div>
|
||
<div class="illus-browser-body">
|
||
<div class="illus-line-placeholder" style="width: 80%;"></div>
|
||
<div class="illus-line-placeholder" style="width: 50%;"></div>
|
||
<div class="illus-line-placeholder" style="width: 90%;"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="step">
|
||
<div class="step-text" data-reveal>
|
||
<div class="step-num">02</div>
|
||
<h3><span lang="en">Create a Room</span><span lang="de">Raum erstellen</span></h3>
|
||
<p lang="en">Open the extension, enter a Room ID and Password, and hit Join. Your secure synchronization space is ready.</p>
|
||
<p lang="de">Öffnen Sie die Erweiterung, geben Sie eine Raum-ID und ein Passwort ein und klicken Sie auf Beitreten. Ihr sicherer Synchronisationsraum ist bereit.</p>
|
||
</div>
|
||
<!-- Custom Step 2 Illustration -->
|
||
<div class="step-illustration-2" data-reveal>
|
||
<div class="illus-form-box">
|
||
<div class="illus-form-field">
|
||
<div class="illus-line-placeholder" style="width: 30%; height: 6px;"></div>
|
||
<div class="illus-form-input">
|
||
<div class="illus-typing-text">brave-eagle-80</div>
|
||
</div>
|
||
</div>
|
||
<div class="illus-form-btn">
|
||
<span lang="en">CREATE ROOM</span><span lang="de">RAUM ERSTELLEN</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="step">
|
||
<div class="step-text" data-reveal>
|
||
<div class="step-num">03</div>
|
||
<h3><span lang="en">Share & Sync</span><span lang="de">Teilen & Synchronisieren</span></h3>
|
||
<p lang="en">Send the invite link to your friends. Once they join, select your video tab and enjoy synchronized playback.</p>
|
||
<p lang="de">Senden Sie den Einladungslink an Ihre Freunde. Sobald sie beitreten, wählen Sie Ihren Video-Tab aus und genießen Sie die synchronisierte Wiedergabe.</p>
|
||
</div>
|
||
<!-- Custom Step 3 Illustration -->
|
||
<div class="step-illustration-3" data-reveal>
|
||
<div class="illus-players-container">
|
||
<div class="illus-mini-player">
|
||
<div class="illus-video-screen">
|
||
<div class="illus-play-icon">▶</div>
|
||
</div>
|
||
<div class="illus-player-timeline">
|
||
<div class="illus-timeline-bar">
|
||
<div class="illus-timeline-progress"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="illus-sync-connection">
|
||
<div class="illus-sync-line">
|
||
<div class="illus-sync-pulse"></div>
|
||
</div>
|
||
<span class="illus-sync-label">IN SYNC</span>
|
||
</div>
|
||
<div class="illus-mini-player">
|
||
<div class="illus-video-screen">
|
||
<div class="illus-play-icon">▶</div>
|
||
</div>
|
||
<div class="illus-player-timeline">
|
||
<div class="illus-timeline-bar">
|
||
<div class="illus-timeline-progress"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Self Hosters Paradise Section -->
|
||
<section id="self-hosting" style="background: rgba(15, 23, 42, 0.4); border-top: 1px solid var(--glass-border); border-bottom: 1px solid var(--glass-border);">
|
||
<div class="container">
|
||
<h2 style="font-size: 2.5rem; text-align: center; margin-bottom: 1rem;">
|
||
<span lang="en">For Self-Hosters</span><span lang="de">Für Self-Hoster</span>
|
||
</h2>
|
||
<p style="text-align: center; color: var(--text-muted); margin-bottom: 3rem; max-width: 600px; margin-left: auto; margin-right: auto;">
|
||
<span lang="en">Maintain full data sovereignty. Deploy your own private relay server in minutes.</span>
|
||
<span lang="de">Behalte die volle Datenhoheit. Richte deinen eigenen privaten Relay-Server in wenigen Minuten ein.</span>
|
||
</p>
|
||
|
||
<div class="terminal-container" data-reveal>
|
||
<div class="terminal-header">
|
||
<div class="terminal-dots">
|
||
<span class="terminal-dot red"></span>
|
||
<span class="terminal-dot yellow"></span>
|
||
<span class="terminal-dot green"></span>
|
||
</div>
|
||
<div class="terminal-tabs">
|
||
<button class="terminal-tab-btn active" data-tab="pane-docker">docker-compose.yml</button>
|
||
<button class="terminal-tab-btn" data-tab="pane-caddy">Caddyfile</button>
|
||
</div>
|
||
</div>
|
||
<div class="terminal-body">
|
||
<button class="terminal-copy-btn">
|
||
📋 <span lang="en">Copy Code</span><span lang="de">Code kopieren</span>
|
||
</button>
|
||
|
||
<div id="pane-docker" class="terminal-pane active">
|
||
<pre><code><span class="t-key">services:</span>
|
||
<span class="t-key">koala-sync:</span>
|
||
<span class="t-key">image:</span> <span class="t-str">ghcr.io/shik3i/koalasync:latest</span>
|
||
<span class="t-key">container_name:</span> <span class="t-str">KoalaSync</span>
|
||
<span class="t-key">restart:</span> <span class="t-str">always</span>
|
||
<span class="t-comment"># Access internally by proxying to container port 3000</span>
|
||
<span class="t-key">environment:</span>
|
||
<span class="t-key">-</span> <span class="t-str">TZ=Europe/Berlin</span>
|
||
<span class="t-key">-</span> <span class="t-str">PORT=3000</span>
|
||
<span class="t-key">-</span> <span class="t-str">MIN_VERSION=1.0.0</span>
|
||
<span class="t-key">-</span> <span class="t-str">MAX_ROOMS=100</span>
|
||
<span class="t-key">-</span> <span class="t-str">MAX_PEERS_PER_ROOM=50</span>
|
||
<span class="t-key">pids_limit:</span> <span class="t-val">2048</span></code></pre>
|
||
<div style="margin-top: 1rem; font-size: 0.75rem; text-align: right; padding-right: 0.5rem;">
|
||
<a href="https://github.com/Shik3i/KoalaSync/pkgs/container/koalasync" target="_blank" style="color: var(--accent); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; transition: opacity 0.2s; opacity: 0.85;">
|
||
📦 <span lang="en">View all image tags on GitHub Packages</span><span lang="de">Alle Image-Tags auf GitHub Packages ansehen</span> →
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="pane-caddy" class="terminal-pane">
|
||
<pre><code><span class="t-key">sync.koalastuff.net</span> {
|
||
<span class="t-comment"># Specify the web root inside the container</span>
|
||
<span class="t-key">root</span> <span class="t-val">*</span> <span class="t-str">/var/www/html</span>
|
||
|
||
<span class="t-comment"># Enable static file server to deliver HTML, CSS, JS</span>
|
||
<span class="t-key">file_server</span>
|
||
}
|
||
|
||
<span class="t-key">syncserver.koalastuff.net</span> {
|
||
<span class="t-key">reverse_proxy</span> <span class="t-val">KoalaSync:3000</span>
|
||
}</code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section style="text-align: center; border-top: 1px solid var(--glass-border); padding: 6rem 0;">
|
||
<div class="container">
|
||
<h2 data-reveal style="font-size: 2.2rem; margin-bottom: 1rem;">
|
||
<span lang="en">Not convinced? See for yourself.</span>
|
||
<span lang="de">Noch nicht überzeugt? Überzeug dich selbst.</span>
|
||
</h2>
|
||
<p data-reveal style="margin-bottom: 3rem; color: var(--text-muted); max-width: 650px; margin-left: auto; margin-right: auto; line-height: 1.6; font-size: 1.05rem;">
|
||
<span lang="en">KoalaSync is 100% open source, ad-free and tracking-free. Audit our codebase on GitHub or install the browser extension directly.</span>
|
||
<span lang="de">KoalaSync ist zu 100 % Open Source, werbefrei und trackingsicher. Überprüfe unseren Code auf GitHub oder installiere direkt die Browser-Erweiterung.</span>
|
||
</p>
|
||
<div class="cta-group" data-reveal style="justify-content: center; gap: 1rem; margin-bottom: 1rem;">
|
||
<a href="https://chromewebstore.google.com/detail/koalasync/obbnmkmlaaddodakcbdljknjpagklifc" class="btn btn-primary">
|
||
<img src="assets/chrome.svg" alt="Chrome" width="20" height="20">
|
||
<span lang="en">Add to Chrome</span><span lang="de">Zu Chrome hinzufügen</span>
|
||
</a>
|
||
<a href="https://addons.mozilla.org/de/firefox/addon/koalasync/" class="btn btn-firefox">
|
||
<img src="assets/firefox.svg" alt="Firefox" width="20" height="20">
|
||
<span lang="en">Add to Firefox</span><span lang="de">Zu Firefox hinzufügen</span>
|
||
</a>
|
||
</div>
|
||
|
||
<img src="assets/KoalaGithub.webp" alt="A cute koala holding a GitHub repository page next to the GitHub mascot Octocat" class="cta-github-mascot" lang="en" width="250" height="165" loading="lazy" data-reveal>
|
||
<img src="assets/KoalaGithub.webp" alt="Ein niedlicher Koala hält eine GitHub-Projektseite zusammen mit dem GitHub Maskottchen Octocat" class="cta-github-mascot" lang="de" width="250" height="165" loading="lazy" data-reveal>
|
||
|
||
<div class="cta-group" data-reveal style="justify-content: center; margin-top: 1rem;">
|
||
<a href="https://github.com/Shik3i/KoalaSync" target="_blank" class="btn btn-secondary" style="display: inline-flex; align-items: center; gap: 8px;">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="20" height="20" aria-hidden="true" style="display: block;"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
||
GitHub
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<footer>
|
||
<div class="container">
|
||
<p>© 2026 KoalaSync. Open source under the MIT License.</p>
|
||
<p lang="en" style="font-size: 0.8rem; margin-top: 0.5rem;">No data is stored on our servers. Pure RAM-based relay.</p>
|
||
<p lang="de" style="font-size: 0.8rem; margin-top: 0.5rem;">Keine Daten werden auf unseren Servern gespeichert. Reines RAM-basiertes Relay.</p>
|
||
<div style="margin-top: 1.5rem; font-size: 0.8rem; display: flex; justify-content: center; gap: 1.5rem;">
|
||
<a href="impressum.html" style="color: var(--text-muted); text-decoration: none;"><span lang="en">Legal Notice</span><span lang="de">Impressum</span></a>
|
||
<a href="datenschutz.html" style="color: var(--text-muted); text-decoration: none;"><span lang="en">Privacy Policy</span><span lang="de">Datenschutz</span></a>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<script src="app.js"></script>
|
||
</body>
|
||
</html>
|