A browser extension to view websites together, in real time. No set up required, just install the extension and share a link with your peer.
The real-time part is done by Mozilla's TogetherJS. This extension just ships it, inserts it into an arbitrary page and allows to start a session.
Unlike a browser tab sync plugin, it doesn't require a user account with the browser vendor
Unlike a screen sharing solution, it should only share the commands, not a video feed, and thus should be much more responsive while requiring less bandwidth.
Unlike "customer support" kind of applications, the main use case is remote pair programming.
It's like a shared tmux + vim session, but for stack overflow :)
Proof of Concept / Work in progress
- Create an extension that includes TogetherJS in every page
- Add a menu item that starts TogetherJS
- Ship it
-
Preserve session across page navigations (different hosts)
This should be possible by the following steps (tried out successfully by manual testing)
- Intercepting the navigation event
- Memorizing TogetherJS's session (it uses localStorage)
- When the new page has loaded, insert the TogetherJS session
- The peer should
- Browse together in all tabs of the window, not just one
- Make it more convenient to follow (auto-follow)
-
Behavior of TogetherJS on different pages
-
Content security policy
Issue: TogetherJS loads more files (e.g. stylesheet) from its server. This might be circumvented by setting the
baseUrl
parameter in its config. -
TogetherJS quirks and incompatibilities on certain pages
- On some pages, clicks aren't synced
- How does it behave on pages with login? e.g. jira
- What if the page state get
- iframe support?