Meteor supports Cordova, Electron is akin to that. PWAs don’t supply nearly the same solution as Electron apps, which have access to a number of desktop APIs that a webapp can’t use.
VSCode, Slack, Skype, Discord, WhatsApp, Atom, they all use Electron. It provides a compelling solution for those who want or need cross-platform desktop applications, and a number of billion dollar companies are using it.
Data intensive has many meanings - doing work on the server side is a viable solution in some cases, not so in ours. Our users often wan’t to look at multiple intersecting sets of the same data (statistics for person X across period Y, then statistics for person X + … across period […, Y, …]) - also, the granularity they need really precludes us from doing much aggregation on the server, all the data really needs to be sent to the client.
Perhaps consider for a moment that I have considered moving to the cloud - and indeed utilise many of the same components you probably do. Mongo, AWS spot instances, lambda, etc. Some things simply require significant data be sent to the client, unless you really want to do all the client side rendering on the server, which has it’s own drawbacks and limitations.
Also, perhaps we’re talking about different things, but my guess is that many people on this forum (the one for a webapp technology…) who want electron are already using a webapp, and in fact want to move in the other direction, for numerous reasons.
Regarding the resource consumption of those apps you point to - ignoring for a moment the scale of the companies you’re talking about: microsoft, spotify and slack all service millions of users - I have not found the resource consumption higher than an equivalent chrome tab running the same software. Of course, if you are comparing electron to a native custom built and optimized app, then of course electron will lose.
All this being said - I don’t necessarily think that Meteor should fully support electron. What I want to see instead is them refactor their build process to allow for electron and cordova support to be added separately, in a customizable way. Recently I tried changing the cordova built to use the modern web bundle rather than legacy, and it was a nightmare, I had to abandon it - what seems like it should be a simple flag is not at all.
For what it’s worth I did end up producing a desktop app using Meteor + Electron. It’s listed in the Mac App Store and has received sales. If desktop apps are not a technology of the current era, then the actual people who demonstrate that they are willing to pay for desktop apps would beg to differ. Nothing outlives it’s usefulness. The Mac App Store exists because commerce is happening on it. If it would be of a bygone era then it would go the way of iTunes.
As for the process itself… It wasn’t easy. Went back and forth with different versions of Electron, bundled and un-bundled node and mongo, and sand boxing the app wasn’t entirely trivial, but all no of this can be made easier with better documentation and tooling.
I would also love to be able to publish an Electron-based desktop app for my Meteor app. I’ve already added PWA support with a service worker and everything, but the fact is, many of my users simply want a standalone app so they don’t have to access the app through their browser. PWAs don’t cut it.
I tried meteor-desktop in the past and got it semi-working, and from looking at the repo it looks like folks are still working on it in various forks and branches, though I don’t know how close it is to being brought up to date and working.
@larry, if you have any hints to share about what ended up working for you, I’m sure it would help the effort…
meteor-desktop works fine if you follow the docs, we’ve been releasing regularly for over a year now. It took a little while to get the full pre-release and release build pipeline in place for Windows, macOS and Linux w/code signing and there were a few gotchas we encountered that were specific to our build and some native c++ libraries we were using but once it’s set up you can just forget about it. They’ve recently updated to Electron 6 (from Electron 2) and decoupled the various internal components for building and packaging, so it’s in the best state it’s ever been now. I’d recommend giving it another shot.
+, this really could be important for the future of meteor. We use meteor-desktop, but there really a bunch of issues like lack of support for last versions. Our fork located here, we resolved a bunch of current issues, but any help is very appreciated
We will do so soon, just haven’t enough. time recently
When we only started our fork repo was a bit staled, with some open (useful) PRs, without any response from wojtkowiak, so we did a bit of incompatible changes. Looks like we need now to make a branch which we will be able to apply to master when opening PR back to parent repo in order to provide compatibility
We use meteor-desktop as well for the reasons mentioned by others already. It is a concern to be so reliant on a package that’s no longer heavily maintained.
On a side note I notice that Microsoft has released support for React Native on Windows and MacOS. With Meteor now providing first class support for react-native, perhaps this is the way forward long term…
Have you thought about using PWA to deliver the app to the desktop? I know it’s not for every use case, but for some use cases it might be good enough.
I’ve been seeing over & over @alawi’s mention of PWAs and somehow I was not aware of their desktop/chrome integration I just made the Meteor Forum a PWA (looks so nice as an app, see image below), not just another tab in my browser anymore.
Looks like the PWA desktop might not give you everything that an Electron app does, but wow, I’m impressed. Not sure how I missed this, but I’m even more excited to make my Vue + Meteor app PWA compatible now!
I had realized this for Mobile, but not Desktop… pretty nice & easier alternatives to Cordova and Electron. Although, I do support keeping strong Cordova support & Electron support growing. I do think many mature apps depend on these.
For me the biggest draw to desktop & mobile apps is just the user having an easy icon to click on and recognize when they use the app daily. This is the BIGGEST factor for users returning daily to interact with an app.
For so many years I’ve wondered why this was not easier to do. Feels like 10 yrs ago now, but I remember using this http://fakeapp.com/ for OSX back in the day, but it was not really a good solution.
It would be great to add PWA details in the Meteor docs. I have noticed Vue’s CLI & Gatsby have clear PWA docs.
Thanks to @jkuester for this Meteor PWA guide, I now finally get why the Meteor core team should prioritize making this more obvious, aka good docs, and maybe an atmosphere package or a skeleton for a PWA app that would configure a package like the Vue CLI does.
@filipenevola hoping you could take a quick look at this and share with the Meteor core team!
@omega a great alternative to getting this into core is getting it into the Meteor-Community-Packages org, so that others can help maintain and release it. Others are willing to help keep it up to date as many ppl have businesses relying on this package. Please see this issue https://github.com/wojtkowiak/meteor-desktop/issues/243
So how does the package get there? As much as I understand it’s no longer supported by the original author.
No responses on bugs/issues either. We went along the path due to security and data privacy reasons and are now facing issues as the automatic update doesn’t work and is leaving our customer being stuck with bugs that are long solved (see Cordova force update on stuck clients due hash mismatch)
We’ve been using electron-updater to update our meteor-desktop electron from electron 2 to electron 9 over the course of a couple years and have never had any issues, so it’s not an issue of meteor-desktop.
If the maintainer abandons an open source project then the path forward is fork it into the Meteor-Community-Packages org. It would just need to use a different npm package name like “meteor-desktop-community” or something
Hi @efrancis and all, sorry, I’m late here, very late btw.
I have never developed an app with Electron but I have a PWA for desktop with Meteor for example.
Electron could also be a nice addition as we need to access restaurant’s printer and other resources in this product (https://www.bemarke.com)
Also, in the Meteor Software (Tiny) company side, we are willing to keep Meteor as a great choice for desktop apps.
What are the issues, PRs that are pending that we could take a second look?
Please send me a private message here or on Slack if you think we can help in any way. It would be important to have people actively development with Meteor and Electron involved in this work.