April 4, 2019

Desktop app or web app?

I like that a web app requires little commitment from users. They just visit the page and start using it. They don't need to download anything they might not trust, nor do they have to install it.

I've started a project related to video processing. It takes videos and returns a modified version as a result. It wouldn't make a very practical web app (users would have to upload the video, wait for it to process, then download the result, incurring extra waiting time for the upload/download and cost to me for bandwidth and server CPU usage), but I like that it would be "modern".

Am I being foolish? Are desktop apps not dead? Can anyone speak from experience how people respond to downloading a tool from someone they've never heard of?

#ask-ih

  1. 3

    Why not both and let users choose? You could build a web app and then package it as a desktop app through Electron. The app can detect if it's running in Electron and do the video processing using the user's CPU rather than on your server.

    1. 1

      I would happily have both if I don't have to build it twice. Great suggestion thank you!

  2. 2

    Disclaimer: I'm working on a Mac app. I hate web apps, especially electron. And I might be a fool.

    For video processing I would think a desktop app would be the natural choice. Especially if a user will frequently use your app. Most video workflows are a pipeline and sending video off to a server, waiting for processing, then downloading would be a nightmare for a user that needed to use more than one video service.

    If you're targeting pro users then you can assume they're on some beefy hardware Mac Pro, iMac Pro, or some PC equivalent. It would be a shame to not take advantage of their metal. In fact if you're targeting pros, I'd think a Final Cut, AVID, and Premiere plugin would be the most appropriate.

    If you're not targeting pros then you have some flexibility. If the software is a black box that takes a video, processes it, and spits something out, then a web service might be appropriate. Zencoder is an example of a video based product as a service and I think they're doing just fine.

    However, if you’re product has a UI (especially a non-trivial UI) then I’d think that having to write and maintain a UI plus do all the DevOps for processing in the cloud would be like creating two products.

    I don’t think desktop apps are dead. e.g. Sketch just landed $20 million in Series A funding:

    https://techcrunch.com/2019/03/13/sketch-maker-of-popular-design-tools-just-landed-20-million-in-series-a-funding-from-benchmark-in-its-first-outside-round/

    1. 1

      Thanks for the advice. I am aimed more at casual users than professionals, which makes the low-commitment web app more appealing. For pros I would wholeheartedly agree they want the more practical desktop solution.

      I think (if there proves to be demand) I will probably end up creating a web and desktop version. Which to start with is still an important decision though.

  3. 2

    Are you just building for Apple, Windows and Linux? Is your customer base going to be using the application offline or are most of your customers going to want to use this from their mobile? Based off the short description, desktop app would probably be my choice because you are right, you have to keep in mind the cost of your hosting provider.

    1. 1

      Good questions. At the moment I have an idea of who my customers might be, though I don't know how/where they would use it. I'm not sure how to find out other than pestering them or "tricking" them with a link to a product that doesn't exist yet (and I don't really like either of those). Desktop and mobile are both in the equation I would guess.

  4. 2

    The trend seems to be web based back end with Electron front end these days; eg Slack, Teams, Postman etc are all Electron I think.

    Would that work for video processing?

    Can’t see why not...

    Go where your customers are.

    1. 1

      My video processing uses deep learning with the python implementation of Tensorflow, so I would need to find a way to package and run python within an electron app. Preliminary research (googling just now) tells me that this is likely possible if not a bit tricky.

      This is approach is definitely one for me to consider.

  5. 2

    I think it would heavily depend on who are the users of your app. The platform of your application is, in fact, only the medium in which your service (video processing) is consumed. If you haven't done it already, you could establish your audience by targeting who are going to use this service and explore their workflow. That should get you in good shape to establish which platform would be best.

    You've cited some downsides of a web video processing but there are also huge benefits as well. People would be able to use this service from anywhere and on any kind of devices. You will also have a bit more flexibility on your business model because it will be easier to get subscriptions and pay-per-use. You could also do it on the desktop but it's a lot harder.

    Good luck with your project!

    1. 1

      Thanks for your input! You are right about the benefits of a web app. They would be hard to pass up

  6. 2

    When creating a first version it might be good to take your own convenience into consideration. What are you more familiar with? On what platform can you delete bugfixes and new features the easiest? At the time that you might be iterating the most, this can hugely benefit you.

    From a consumer perspective wether I would download something depends heavily on the expected usage. If it's a video processing thing I'd do only a couple of times, I would prefer a website over a local experience.

    Here are some other things to keep in mind:

    • a web experience requires a good internet connection and might exclude countries where bandwidth is expensive or limited.

    • on web it's easier to grow and reach people (think retargeting, building newsletter lists) which might be useful if your tool is used only occasionally.

    1. 1

      Thank you for the tips! Interesting to hear your own preference as a hypothetical user... Honestly I was expecting everyone to be in favor of desktop but feedback so far is showing me that isn't the case. This is very helpful!

      1. 1

        If it's a flip of the coin decision, I'd go for the thing that would teach me the most. Depending on where your skills are better building for desktop might be a more interesting decision than actually building for web (again).

  7. 1

    web app for mobile visitors by default.

  8. 1

    I, for one, never really understood the whole "move EVERYTHING to the cloud" obsession. Many professionals still use desktops heavily, and I doubt that this will change in the near future. It just makes so much sense for certain types of products to be desktop apps, to the point that having a web app would be silly or useless. Why fight this?

  9. 1

    Always bet on the web

  10. 1