Show HN: Duckly – Cross-IDE real-time code sharing with video call
Hello HN! This is Thiago and Dragos from Duckly (YC S20) (https://duckly.com). Duckly is an IDE plugin for VSCode and IntelliJ that enables developers to talk and share their code in real-time with people using a different IDE.

We have been working together remotely since 2019 and we were surprised about how hard it was for doing simple collaborative tasks. Like helping a colleague debug something. We also found it interesting to watch skilled people working and naturally as product builders, we were particularly interested in watching developers working. We knew the rubber duck debugging methodology so we decided to build this product that would enable you to share yourself coding live. We called it GitDuck — like after doing a git commit, you would record a short video explaining your code using the command git duck. We launched this on HN https://news.ycombinator.com/item?id=20895084.

That was interesting, but we were still facing the same issues when trying to collaborate internally. It was still hard to get help from somebody else. We decided to focus on private collaboration and make it possible for people to collaborate in real-time. That was a big change, as previously we had built a streaming platform and an IDE plugin that was linking the code to the video timestamps. In this new iteration, we had to build a video calling app connected to the IDE plugin that would enable people to share and edit code while on a call. Btw, that happened while going through YC. You can see this version launch here https://news.ycombinator.com/item?id=24228826.

The video calling part was built using Daily.co and we built a new IDE plugin that would share the code P2P with other call participants using CRDTs. Building that was quite challenging and we had to be very careful when propagating changes between all participants to avoid the code getting out of sync.

A frequent feedback that we received from our users is that it was troublesome to talk using the web, while code sharing on the IDE. That everything would be better if you could actually talk inside of the IDE. The hard part of doing this is that we couldn’t rely on the IDEs for managing the audio and video. For example, while building the first live streaming iteration, we learned that the IDEs were often killing the extension running in the background. Another challenge is how we could offer this feature in the future for other IDEs like Eclipse, vim, or Sublime. Some of these didn’t even have the UI or the APIs for supporting such features. We decided to use an electron app and make the IDE communicate and control it. You talk using this native app, but that is launched and controlled by your IDE.

And yes, we are going to support other IDEs, but we don’t want to port until we are satisfied with the existing experience.

Server sharing was another interesting use case that we wanted to solve. It enables you to share any local open port with other people. We create a tunnel with a temporary URL and people can access it by going to that URL. We use socket.io under the hoods to be able to do it.

And that’s what we are launching now! This version of Duckly works entirely on the IDE so developers can talk and share their code without using anything else. The code is shared P2P, with IntelliSense support, and you can collaborate with people using a different IDE than you. We are naturally excited about this launch, but we still need to provide support for Terminal, chat and port to other IDEs. We will address this later.

Duckly has 3 plans, a free plan that allows you to talk up to 45min with one person. A Developer plan ($6/month) that you can talk unlimited with up to 3 people simultaneously or the Team plan ($10/member/month) that is basically unlimited on all fronts.

We would love to hear your feedback. How do you do when you need to collaborate remotely? Do you use any traditional video call like Zoom with screen sharing or do you use something else?