Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A live watch party app to watch videos with your friends remotely, built with the Jamstack architecture.
Jamstack Sync Stream Video is a live watch party demonstration that shows how to add realtime, synchronized video streaming to an open-source Jamstack app.
Jamstack Sync Stream Video is a live watch party app built on the Jamstack architecture, hosted at jamstack-watch-party.ably.dev. It lets a host create a private watch party room, invite friends, and watch videos together with play, pause, and seek controls that stay synchronized for every participant. The app takes a video library managed through a Strapi CMS and streams playback using Ably's pub/sub messaging, with Nuxt.js generating the server-side rendered frontend and Netlify providing deployment. This repository is a reference implementation for building realtime shared experiences in Jamstack applications.
To run locally, start the Strapi API server with npm run develop in the api folder, then add videos via the admin panel at http://localhost:1337/admin. Next start the Nuxt app with npm run dev in the watch-party folder and open http://localhost:3000/. The host selects a video, and every play, pause, and seek action is published over Ably and applied to all connected clients.
Yes, the host has full control of playback, including play, pause, and seek. These events are sent through Ably and applied to all participants, keeping everyone in sync.
You add videos through Strapi's admin panel at http://localhost:1337/admin. After creating an admin user, you must set the Public Role permissions to allow find and find one on videos and auth on the ably-auth endpoint.
The stack is Nuxt.js for the frontend, Strapi as the headless CMS, Ably for realtime pub/sub messaging, and Netlify for building and deploying. This combination supports the Jamstack architecture.
