Live data from Hacker News

Launch HN: Cohere (YC S20) – Real-time user support for web apps

news.ycombinator.com

1–10 of 63 posts

Launch HN: Cohere (YC S20) – Real-time user support for web apps

#1
Hey everyone! Yunyu, Rahul, and Jason here. We're co-founders of Cohere (https://cohere.so), which lets you see what your users are seeing on your web app and remote control their browser with their permission. This requires zero setup on their part, which is particularly helpful for less tech-savvy users.

Pointing things out over Zoom screenshare is highly time consuming ("click the 4th checkbox on the right", "click the handle and drag"), and trying to figure out what users are doing over a live chat or phone call typically leads to endlessly frustrating back-and-forths.

When COVID forced all of us into remote work, we found ourselves spending a lot of time in screensharing sessions. We were tired of choppy frame rates and blurry text, and realized that we could get around this by sharing the user’s screen in a different way. Rather than video streaming, which is how it’s usually done, we could send over diffs of their webpage’s DOM representation and reapply those in the viewer’s browser – this is similar to how virtual DOM frameworks like React work.

We first used this technique for an earlier project (https://news.ycombinator.com/item?id=23363250) that rendered React apps on the server (a Node equivalent of Phoenix LiveView). This reduces development complexity for web apps by completely eliminating the need for RPC layers (REST, GraphQL) – for instance, you'd be able to write to the database directly from your React component and share state across sessions with a single hook. It works by sending DOM updates from the server (e.g. insert a node, change an attribute) in response to input actions sent from the client (e.g. click a button, type a character).

This approach uses significantly less bandwidth compared to traditional screen sharing solutions, and gives us a semantic understanding of the webpage (e.g. a button is sent over as a , instead of a blob of bytes). As a result, we can selectively filter out sensitive content and allow viewers to scroll and type on the webpage without any perceived latency.

To solve our screen sharing problem, we initially built a Chrome extension that let users browse web pages collaboratively. During YC, we saw that our early adopters were primarily using this tool to walk through their own web apps with their customers, so we decided to refocus the product towards helping companies onboard and support their users.

Because we're focused on the real time use case, we only record the DOM when a session is being viewed. This means that no data is sent to our servers unless Cohere is actively being used. Additionally, we don’t persist or retain any session data.

Thanks for reading our story – we'd love to get your thoughts, feedback, and ideas!

Re: Launch HN: Cohere (YC S20) – Real-time user support for web apps

#3

That's pretty cool (the GoToMyPC paradigm has been really successful for desktop app support). Did you end up using Caldera or move to LiveView for this?

Thanks, we're hoping to be the GoToMyPC/TeamViewer for web apps! A lot of the input handling code is derived from Caldera, but since we're embedded on other people's websites, we ended up going for a more conventional stack (a JS script talking over WebSockets).

Re: Launch HN: Cohere (YC S20) – Real-time user support for web apps

#4
post #3

That's pretty cool (the GoToMyPC paradigm has been really successful for desktop app support). Did you end up using Caldera or move to LiveView for this?

Thanks, we're hoping to be the GoToMyPC/TeamViewer for web apps! A lot of the input handling code is derived from Caldera, but since we're embedded on other people's websites, we ended up going for a more conventional stack (a JS script talking over WebSockets).

> ...we're hoping to be the GoToMyPC/TeamViewer for web apps!

For a different approach to remoting, see the recently announced Cloudflare Browser: https://blog.cloudflare.com/browser-beta/

Re: Launch HN: Cohere (YC S20) – Real-time user support for web apps

#5
post #3

That's pretty cool (the GoToMyPC paradigm has been really successful for desktop app support). Did you end up using Caldera or move to LiveView for this?

Thanks, we're hoping to be the GoToMyPC/TeamViewer for web apps! A lot of the input handling code is derived from Caldera, but since we're embedded on other people's websites, we ended up going for a more conventional stack (a JS script talking over WebSockets).

So this means this only works for NodeJS-powered web apps?

Re: Launch HN: Cohere (YC S20) – Real-time user support for web apps

#6
post #3

Earlier quoted context omitted.

Thanks, we're hoping to be the GoToMyPC/TeamViewer for web apps! A lot of the input handling code is derived from Caldera, but since we're embedded on other people's websites, we ended up going for a more conventional stack (a JS script talking over WebSockets).

> ...we're hoping to be the GoToMyPC/TeamViewer for web apps! For a different approach to remoting, see the recently announced Cloudflare Browser: https://blog.cloudflare.com/browser-beta/

Streaming over draw calls is a super unique take on this – I think this is what Mighty.app is trying to do as well. Browsing the web is the perfect use case for offloading client-side compute, and I'm excited to see this industry develop.

Re: Launch HN: Cohere (YC S20) – Real-time user support for web apps

#7
post #3

Earlier quoted context omitted.

Thanks, we're hoping to be the GoToMyPC/TeamViewer for web apps! A lot of the input handling code is derived from Caldera, but since we're embedded on other people's websites, we ended up going for a more conventional stack (a JS script talking over WebSockets).

So this means this only works for NodeJS-powered web apps?

It works for all tech stacks, as our integration process is client-side only! You don't need to change anything on the server to use Cohere.

Re: Launch HN: Cohere (YC S20) – Real-time user support for web apps

#10

Nice idea! I think this would be very useful for myself and other indiehacker types. Is there a video of a demo of the product anywhere? Also is there audio involved as well? How do you communicate when you're in a session with the user?

Thanks for pointing this out – we're working on putting a video on the landing page. If you'd like to try out Cohere before integrating, there's an option to connect an example webpage to your team after signing up!

Most of our users usually are already on a call or chat when they hop in a Cohere session, and we integrate with Intercom and Slack to make this easier. We're definitely thinking of ways to streamline this more!

Post reply on HN