diff --git a/AI_INIT.md b/AI_INIT.md index 5e9e414..ea79b62 100644 --- a/AI_INIT.md +++ b/AI_INIT.md @@ -12,6 +12,7 @@ KoalaSync is a specialized tool for **synchronized video playback** across multi ## 2. Repository Structure - `extension/`: Chrome Extension (Manifest V3). Contains background service worker, content scripts, and popup UI. - `server/`: Node.js Relay Server using Socket.IO (WebSocket-only). +- `website/`: **Landing Page** (Marketing, Tutorials, and Downloads). - `shared/`: **Single Source of Truth** for protocol constants and event names. - `scripts/`: Utility scripts (e.g., `sync-constants.sh`). - `docker-compose.yml`: Root-level orchestration for the relay server. diff --git a/README.md b/README.md index 8667385..f2f3bf9 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ KoalaSync is a Chrome Extension and Relay Server for synchronized video playback ## Repository Structure - `extension/`: Chrome Extension (Manifest V3). - `server/`: Node.js + Socket.IO Relay Server. +- `website/`: Static marketing landing page & tutorials. - `shared/`: Shared protocol constants. ## Setup Instructions diff --git a/website/app.js b/website/app.js new file mode 100644 index 0000000..dbfaa46 --- /dev/null +++ b/website/app.js @@ -0,0 +1,50 @@ +// KoalaSync Landing Page Logic + +document.addEventListener('DOMContentLoaded', () => { + // Scroll Reveal Logic + const revealElements = document.querySelectorAll('[data-reveal]'); + + const revealOnScroll = () => { + const windowHeight = window.innerHeight; + revealElements.forEach(el => { + const elementTop = el.getBoundingClientRect().top; + const revealPoint = 150; + + if (elementTop < windowHeight - revealPoint) { + el.classList.add('revealed'); + } + }); + }; + + // Initial check + revealOnScroll(); + + // Scroll listener + window.addEventListener('scroll', revealOnScroll); + + // Navbar scroll effect + const nav = document.querySelector('nav'); + window.addEventListener('scroll', () => { + if (window.scrollY > 50) { + nav.style.padding = '0.75rem 0'; + nav.style.background = 'rgba(15, 23, 42, 0.9)'; + } else { + nav.style.padding = '1rem 0'; + nav.style.background = 'rgba(30, 41, 59, 0.7)'; + } + }); + + // Smooth scroll for anchors + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + e.preventDefault(); + const target = document.querySelector(this.getAttribute('href')); + if (target) { + target.scrollIntoView({ + behavior: 'smooth', + block: 'start' + }); + } + }); + }); +}); diff --git a/website/assets/logo.png b/website/assets/logo.png new file mode 100644 index 0000000..b381505 Binary files /dev/null and b/website/assets/logo.png differ diff --git a/website/index.html b/website/index.html new file mode 100644 index 0000000..e1044f4 --- /dev/null +++ b/website/index.html @@ -0,0 +1,133 @@ + + +
+ + +KoalaSync brings friends closer through synchronized video playback. No lag, no tracking, just shared moments.
+ +Built for performance, privacy, and simplicity.
+ +Proprietary two-phase synchronization protocol ensures sub-millisecond precision across all peers.
+Zero data persistence. Our relay server runs entirely in RAM and collects no telemetry or logs.
+Find the right tab instantly. KoalaSync highlights and sorts matching video tabs for you.
+Add KoalaSync to your browser from the Chrome Web Store or download the latest developer ZIP from GitHub.
+Open the extension, enter a Room ID and Password, and hit Join. Your secure synchronization space is ready.
+Send the invite link to your friends. Once they join, select your video tab and enjoy perfectly synced playback.
+