DEV Community

Sarthak Sharma
Sarthak Sharma

Posted on

What would be best Language to make a web based video conferencing app? πŸ€”

Note: Only Experts are allowed to comment 😈

So the question is simple, what would be the best programming language to make a video conferencing app and Why?

Top comments (18)

rhymes profile image

Hi Sarthak!

Jitsi, which is both a video conferencing app and a platform to build upon, is written mostly in Java (the server part). The rest is JavaScript, Obj-C, Kotlin... depending on the client.

Apache OpenMeetings is written in Java as well.

BigBlueButton is mostly written in Java and JavaScript (plus a Rails web frontend).

MConf seems to be mostly a fork of BigBlueButton

Zoom, video conferencing company, seems to be hiring C++ and Python developers for the server part.

Discord, AFAIK, uses Elixir, Python and Go on the server. Don't know which is used for what.

To keep things simple I think you could investigate WebRTC and use whatever you prefer on the server. The technology is built in the browsers, they need a server to signal their existence.

Google has a tutorial on how to build an app like that

vuild profile image

This is a bit of a vague question that probably would work with a bit more spec.

In the beginning, I would probably use a 3rd party service & wrap it in your own apps because the streaming part is pretty unreliable & hard to do good QA on. The biggest video conferencing services still have problems so smaller ones always will.

Then you can focus on the quality of the apps & the user experience more/spend less.

Maybe something like

Expertise: Streaming, not conferencing (but seems the same to me).

derek profile image
derek • Edited

Golang leveraging webRTC with pion!

Why golang?
Because it's πŸ’―!

Why webRTC?
Because it's the πŸš€!

Why pion?
Because it's a great library with an amazing community!

manific profile image
Manific • Edited

I am not a professional, but I will do my best to answer this question. As far as I know, you can use HTML, CSS, and JavaScript to create a video-conferencing application. Developing your own video conferencing app is not an easy task to solve. It is convenient on the web-based application as many desktop platforms offer it as a default inclusion with the system. You can make it with a help of Angular, ReactJS, and Vue that will make your app more powerful. Stemob, if you want to install Google Duo on your PC, you must enter the address in the URL bar of your web browser. Then you should click 'Try Duo for Web' on the home page, that's all. If you still have any difficulties with it, you can visit this site and find the solution you need.

shivaay26 profile image

hey guys seems like this thread have been inactive from quite some time
i am also here in order to create a video conferencing app
i am gonna use jitsi as it is one of best documented platform available
just waiting for the vp9 codecs support as it will drastically reduce the bandwidth requirement

rhymes profile image

Awesome comment, thanks for the info. I was wondering as well about many to many which webrtc doesn't seem to cover easily.

Even the idea of horizontally scaling a media streaming server seems like a huge deal! How do you deal with session affinity for example? What about slow clients?

Very fascinating!

somedood profile image
Basti Ortiz • Edited

For the record, I wouldn't say I'm an "expert" per se. Just wanted to give some suggestions.

WebRTC is a great place to start in general because it's pretty much becoming the standard of peer-to-peer connections in the Web. Furthermore, most devices nowadays support this technology, which is great. πŸ‘

If you need a very quick prototype, JavaScript and the WebRTC API is definitely one of the best options out there.

Though, from experience, a many-to-many architecture for WebRTC isn't exactly fun to implement.

mandaputtra profile image
Manda Putra • Edited

I would go for Dood advice exacly.. I implement this before and it is powerfull! Im using JavaScript back to front.

But... If you want some expert advice they maybe suggest you with Elixir. Discord, Netflix, Whatsapp use it.

About elixir its an OTP language runs on BEAM Erlang VM, known for its robustness on handling million connection per-instance. See their talk you maybe interested.

To be precisely language matters but the architecture could safe the language.

And my apps now somehow arent booming fail on bussines.. so yeah i dont have anything to brag sorry about that.

Bonus :

If you have money maybe AWS streaming platform could help you

adamszaloczi profile image
Adam Szaloczi

I would go with MERN (MongoDB + ExpressJS + React + NodeJS) stack, and webRTC.
Why? Because its all well documented...

codereaperatul profile image
Atul kumar

hey can you tell me where is the docuementation for the same?

adamszaloczi profile image
Adam Szaloczi

I cant link a complete documentation, regarding your project, but with the MERN stack or other JS based framework you can build this app, but you need strong understanding the whole architecture, on serverside as well as on client side, and everything between. Give some ride on google, you can find useful tutorials.

Thread Thread
codereaperatul profile image
Atul kumar

itried it but not getting useful result please guide me

Thread Thread
adamszaloczi profile image
Adam Szaloczi

I found this close enough, this might be a good start, to understand what is waiting for you.

shawneary profile image
Shawn Eary

Maybe not Electron. Just look at all of the bugs in MS Teams 1.X...

langar2020 profile image

Hello everyone.
I want to learn Webrtc but it's so confusing and sophisticated.
Can anyone recommend me some book or online tutorials anything else.

stemob profile image

Does anyone know how to get Google Duo app on PC?

sathninduk profile image
Sathnindu Kottage

Currently it provides Web, IOS and Android versions only. However you can install the chrome app on your PC

iamshouvikmitra profile image
Shouvik Mitra • Edited

The web welcomes all, even Google Duo uses Web Assembly to port the existing Echo Reduction Binaries.