Jitsi Meet Electron 2.0
github.com
github.com
However, there’s a big “but”. The documentation is abysmal. I’m sorry but that’s the cold hard truth. It’s been a nightmare to understand the pieces working while also using their libraries. Incredibly hard to read, and incomplete, docs. I’ve had to refer to the source to try figure things out most of the time. I say this because I think there’s soooo much potential there if it was more accessible. If you’re from jitsi and are keen for some good and critical feedback then hit me up, I’d love to help you out.
... bundled Chromium, ...
If so, that seems like a lot of work. Especially if you want to verify that it’s removed for future versions.
Still a lot of work though :P
That seems to be Zoom’s signature achievement. I have not had any other commercial app even come close.
How does this compare, in endpoint software?
A major issue is still Firefox, as Firefox does not support simultaneously sending two WebRTC streams, so Firefox users heavily reduce performance for all other users as well, but the rest seems to work just fine.
[1] https://github.com/jitsi/jitsi-meet/issues/4758#issuecomment...
I agree about Zoom’s failings. The existence of Facebook is living proof that privacy is a concern for only a relatively small number of folks.
We have tried Jitsi a few weeks ago. And we couldn’t scale to meetings with more than 5 people. We tried our own server and theirs.
Then there is Skype and Hangouts. With both I can only meet for two hours or so on battery.
Somehow Zoom works flawlessly. Very easy setup and it worked straight out of the box and is not CPU hungry.
The UX is also great. It’s clear what the buttons are and do. Compare that to Skype where it’s not even clear when something is a button, and even then it’s often just an icon, which means nothing to me.
The product is great. But you pay with your personal data, I guess...
I doubt it's any worse than what you give out to Google or Microsoft for their solutions. After all, those are targeted advertising companies. Zoom had bundled the Facebook SDK to enable their social login, but removed it after the discovery that it phones home.
Some of the security threats to zoom are real of course, but I couldn't care less if Microsoft uses telemetry or whatever if I get a good service in return. I log into 20 different things with Google and Facebook and Microsoft already
> We are fortunate that our friends at GoodCorp fully fund the project. GoodCorp uses Facebook technology in products like GoodCorp Social. The open source community and meet.facebook.com service help to make Facebook better, which makes GoodCorp products better, which helps to further fund Facebook. This virtuous cycle has worked well in the past and should continue to for many years to come."
And keep in mind that Jitsi seems like a more resource-hungry product (real-time video).
What's the point for them to put all the money in?
Will try dig up some posts...
EDIT: Looks like one person self-hosted an instance on a Hetzner cloud instance for 2,49€ a month. https://dev.to/noandrea/self-hosted-jitsi-server-with-authen...
Regarding the official Jitsi meet site: "On a plain Xeon server (like this one) that you can rent for about a hundred dollars, for about 20% CPU you will be able to run 1000+ video streams using an average of 550 Mbps!"
https://jitsi.org/jitsi-videobridge-performance-evaluation/
I'm not a backend guy so not sure if this takes everything into account.
But for macOS it's way easier, and more needed. It actually silences the scary warnings. It's even a real security improvement, as you get your app's keychain protected.
This is very much not true - if you have unsigned executables for an app of any scale, 3rd party AV will be extremely Unkind to your app, especially if you try to do updates. Also, how long your app gets blocked depends on how many downloads you get, if your app is popular it can be unblocked in a matter of hours, and once a download URL is deemed trusted, this is largely a non-problem.
Also, while I'll 100% agree that CAs on Windows are a nightmare, the tooling is extremely straightforward, signtool.exe takes your cert file, a password, and an executable, then signs it.
And tooling for managing the certs is another pain. Mine required entering a PIN from a GUI every time certs were touched, so I couldn't automate the builds.
At any rate, I think having unsigned binaries that are not notarized introduces additional hoops for non-expert users, since macOS requires signed bundles by default (which is a good thing!).
To come at it from another direction, why is it your users' responsibility to work around your own cheapness/laziness? Just front the $100 and sign your damn app, especially if you're making money with it.
Moreover, signatures and notarization are there for a reason. Code signing makes it more likely that the bundle was not tampered with. Apple can revoke the certificate if the developer key leaked. Notarization will catch at least some forms of malware.
I refuse to run unsigned code (with one exception), because it decreases security significantly. There have also been severe incidents in the past with unsigned code, e.g.:
https://blog.malwarebytes.com/threat-analysis/mac-threat-ana...
Good enough for me.
However, I understand that said apps may have not existed without Electron at all.
And especially, for jitsi, I think it makes perfect sense. If you are going to create an app that does video, audio and web rtc, it would be silly not to use a battle tested browser engine that does all this already.
Besides, having contemplated the state of UI in a world were you have a bazillions of combination of hardware type + screen format + OS kernel + OS version, I have to say Electron doesn't have much competition.
What are you going to do? QT? Phone support is abysmal and it's a pain to package. Kivy? Super slow, almost no widgets. Flutter ? Uses a niche language with a very small ecosystem and an unknown life expectancy.
I probably would go with the later, but I can't blame people for taking the easy road.
I think you mean "create an app that does video, audio USING web rtc".
Plenty of native desktop/mobile apps do video/audio/text without embedding a browser.
Yes and it's a pain to do: format is limited, packaging is hard, ability to manipulate/embed the video is annoying. In fact, most apps doing that ship ffmpeg and/or vlc and call it a day. The browser gives so you much for free.
including arguably the most attacked and compromised software surface in history.
Electron apps have the slowest interfaces on anything I've seen, lots of times each click of a button or menu has lag on a very solid computer. Who wants to have a program doing video embedded in a painfully slow interface?
That a huge price.
I think you are giving too much credit to people using electron. It really seems to be mostly people who haven't really looked at their options avoiding native languages at the expense of the user. If all someone knows is javascript and they don't really care about their users' lag or resources, then electron is any easy choice.
I though it was too much, and downgraded for a small, cheaper and more portable machine.
Today, I think 32 would be just right.
2 years, lol.
I would imagine such a monstrostiy would be so slow with even 32gb that we would have to pay for extra cloud-based services to do menial tasks like edit documents.
God help us all.
https://www.destroyallsoftware.com/talks/the-birth-and-death...
The talk is hilarious, and very much on point.
I don't think that's it.
Electron make it easy, if you know front end dev, to do an app. It's easy to package as well.
I don't know if you tried to design a beautiful QT app, but it's hard. A beautiful QT app with medias capabilities ? Extra hard. Packaging that? A royal pain.
And when there are no existing widgets, crafting one is way, way easier than with QT. Especially with break points.
> Now, dynalist, stremio, discord, signal, pulsesms and vscode are added to the mix.
So your workflow has changed. You added additional tools to it. These tools have always been electron. You don’t have to use them. There are alternatives.
The people behind these tools have decided that they target an audience you don’t belong to. You are of course free to ask them to change the audience, but you are not entitled to that
But you would be very annoyed if when you upgrade, you'd notice the car actually eats more gas.
That's not what happens though. Modern cars are more ergonomics, and eat less gas.
It's not being entitled. It's just noting the drawbacks of some technological choices.
There must be a benefit for developers for them to chose electron. And that benefit for developers will have an effect for the users in either more features, quicker rollout or more supported platforms.
Now the virtual box memory limit is set at 3 GB and she has no complaints. Obviously this is not for power users but it helps a lot when there is a severe shortage in memory
- my base ram consumption is 2Gb, so it would make 5gb with the VM, giving me 3gb for: firefox, and IDE, thunderbird, telegram, stremio, libreoffice, nautilus, veracrypt, liferea, gnome calendar, keypass, dev tools such as linter/dev servers/formatters, tilix, veracrypt, youtube-dl, jupyter, other VM I use for work... Even if I don't use them all at the same time, that's not a lot real estate. It used to be enough. When I used sublime instead of vscode, didn't have 4 communications apps and so on. You gotta hand it to the electron community: their software do bring good features.
- The ergonomics would be terrible for certain softwares. For chat, it would be alright (no notification is ok with me), but for stuff like dynalist, I need to be productive
- It's slow to use. You can feel the reaction time with every action. Android is slow in itself, but in an emulator, you want chain too many actions
Yes if people used it, but no because people would probably not.
One of the reason electron is so easy to package: it creates a big blog of statically linked everything. If you start having to play the packaging game correctly, you get back to the same problems other run time had.
So my guess would be most users would not do it.
What do you mean?
Does it use a new instance for every app, or it loads the engine once and reuses some of it for every instance? ie. can Electron be made to work like a system shared library, similar to GTK/Qt ?
So maybe we CAN make electron lighter.
I know it's not always possible, but the web now offers a lot of powerful API's.
- can't (realistically) use an alternative runtime. You are stuck with the JS ecosystem.
- can't start when the OS starts
- can't integrate with the UI (task bar, explorer menu, etc)
- can't run a server in the background for native perfs (like most electron apps actually do)
- can't open a server or a communication bus to allow apps cooperation, or playing well with the OS
- can't access the file system in any meaningful way to provide any kind of scanning ability
- can't store data reliably, or in any reasonable quantity
- can't call other local apps, run commands, etc
- can't access local libraries: so you do the crypto, hashing, dataprocessing in pure js
- can't access any non standard peripherics
- can't use the network, forget about avahi/bonjour, broacasting, capturing packets or doing CORS
But your comparison is also not really fair, since you assume everything runs and is stored on your local computer. This is not the case anymore at all.
Plus, the web browser is probably the first application that is started by a user.
Following applications all run in my browser: - email - video conferencing with screen sharing - (persistent) chatting - Office applications (word processor, spreadsheet, ...) - photo storage - games - development sandboxes - ...
In fact most Apps I have on my phone could just be PWA's.
I'm not saying we should all go web, but I'm saying that most things where you want to use electron, you could let it run on the web.
The browser let you do CRUD apps, with a hint of medias handling. That's it.
And not even good ones since your storage can be wiped out an any moment.
Unfortunately, yes.
Maybe it would make sense that we just focus on optimizing Electron for this case. That might take a bit of effort, but that effort might be worth it.
I'm not so sure about that. 5 Electron apps takes up far more memory than 5 tabs open in your browser because there are 5 copies of all the other browser resources. I don't know exactly what they are but anecdotal observation of using Slack and similar apps as browser tabs shows much less memory use. It makes sense: the browser rendering engine and JavaScript engine are going to occupy memory themselves.
I use it to manage things to do, listing, etc., but I would not use it for taking notes, IMO. The format doesn't look great for it.
Anyway, the free plan is good enough to try it on, and the customer support excellent.
I hope it will never be bought by some giant.
I've tried Evernote, Boostnote, Simplenotes, Notion, even a bunch of markdown files inside a Github repo and so far nothing was 100% perfect for me. :)
Same. I always go back to using the file system:
- it has a hierarchy
- I can use whatever file format I want, mix in images, odt, pdf, md, etc
- I can backup and sync
VSCode is a pretty good editor to manage it all, and I played with the idea of creating an app with the new editor view feature of the last version just for that. Support some metadata, create an automatic encrypted sync server and that's it.
So ironically... An electron app.
Imagine what these massive companies could do if they made their own native clients.
Doesn't Telegram use Qt?
I'll edit
As much as we all have strong opinions about Electron, surely someone who is able to make a solidly built "DOM+CSS+JS+Optional extras" version of Electron would be make _bank_ overnight by servicing and consulting for it? I know lots of companies would love a build of Electron with a smaller attack-surface, for example.
- the network code
- the video and audio playing code
- the video and audio capture code
- the crypto code
Making that generic is a huge task nobody will every do. So since you embed them, why no elso embed the UI code ? I mean, at this point...
https://github.com/electron/electron/issues/673
I suppose one issue is that you have to either be very good with backwards compatibility or at least support having a single instance of multiple different versions of the runtime installed side-by-side (e.g. similar to .NET Core).
There is also this.. 'Exploring lighter alternatives to Electron for hosting a Blazor desktop app' [1], which builds upon 'webview' [2].
[1] https://blog.stevensanderson.com/2019/11/01/exploring-lighte...
This is one of those comments that has the same effect as its opposite (in this case, changing the subject).
Just one example: the Jitsi Meet Electron app e.g., allows you to remote control a screen, if screen owner allows. This makes it a replacement for e.g. TeamViewer, VNC or so...
They went from 10m users/week to 200m/week in less than one month.
So what they struggled? Most products would struggle with that kind of ramp up. They owned up to it and fixed pretty much all the complaints. And they're providing a valuable service to the world, most of it for free.
Stop hating Zoom.
It mostly highlights that in order to rush the product out of the door many shortcuts were taken and security shouldn't be one of them in this day and age.
[1]: https://www.schneier.com/blog/archives/2020/04/security_and_...
Apple had to release an update of their OS to remove Zooms rootkit.
(I'm not a Zoom user, but that's just because my employer uses something else).
It's not about that. People realized the privacy implications and the fact that Zoom was not forthcoming about some aspects of it.
No. I don't trust Zoom. I don't like that people like you apologise for them while they continue to make choices that actively endanger users.
I don't like their business model, and I don't like that I'm forced to use it to interact with people. I don't like that I can't verify it's doing what it says it's doing and am actively prevented from doing so. I don't like Zoom and I don't like that I can't choose to not install their spyware because people who don't know any better and don't have any way to protect themselves keep installing it and forcing me to use it.
No. I won't stop hating Zoom until I - and the people who don't know how Zoom is hurting them and so use it anyway - can be free of it and the people who make it so awful.
That's why Jitsi Meet is important. It is everything Zoom isn't - while still accomplishing nearly everything Zoom attempts to accomplish while exploiting its users. That's why it's important.
Yes, you can trust - so long as you always verify while trusting.