The future of desktop-apps

Is it still up-to-date to develop desktop applications in these times and also in the future? On the Internet you only read about browser-based web apps or cloud applications. It is certainly related to the growing popularity of home office workplaces, due to these unusual times.

But won’t it also be the future?

I ask myself that, since I have been programming desktop ERP software in the last few years, which I would like to market now.

What do you think?

Personally I’m not interested in web-apps, cloud based stuff, or smart-phone apps.


I really hope this “everything must be a web app” to be a temporary trend. Everything is slower now than it used to be, everything eats more memory than before.

Let’s see what happens with progressive web apps and web assembly, but until then, I think nice native desktop apps are welcomed from users.


As a hobbist with the luxury of not depending on any business trends I personally don’t have any need for web apps. My apps (e.g. a lexer for ancient greek texts, a text editor with certain highlighting abilities etc.) have a very special use case and rely on good performance, which desktop apps are still best suited for.

A web-based solution makes sense when the application does not have to interact much with the user’s computer since it will be running in a browser which, for security reasons, won’t allow the app to interact directly without the user. Most ERP systems don’t need to interact with the user’s computer.

A web app also has appeal because it doesn’t require any installation on the user’s end and can be updated by you at any time.

If I were writing a new ERP system today, I would start with the assumption that it would be web-based and then go through the client’s requirements, talk about possible future requirements and if all can be met by a web app, I’d go that route.

Keep in mind that you can still then build desktop apps for specialty purposes. Say for example they ship things and the people in the warehouse need some functionality that interfaces with a piece of hardware. That sole function or set of functions can be a desktop or console app that connects directly or indirectly to the same backend database server that the main web app is using. This limits desktop installation issues to a smaller number of users.

We like things to be simple because simple means easy to understand which limits risk. So every time a new platform comes along, there are people who say it’s going to take over and all others will go away. The reality is usually that this new platform simply becomes another choice.

We used to have just mainframe computers. Then desktop computers came along and replaced some mainframe applications but not all. Then the web came along and took a slice of the application market. Next was mobile. Each adds a new way or option in which we can deploy software and each has its’ pros and cons.

For an ERP system, a web app is probably a good choice for most if not all of the functionality. The good news is that should you require a desktop, console or mobile app to provide some ancillary functionality, you can of course build that in Xojo as well.

1 Like

Web apps have existed for some time. Only short sighted people could think they will take over.

In computing, there is never a one size fits all.

Desktop itself is somewhat shrinking, though. Back in 2019, desktop PC sales shrunk by 16% or so. Mostly Windows based machines. But in the meantime, laptops were pretty stable, as well as iPac and Mac laptops.

If you feel like programming, simply do it.


I’ll separate this topic into different areas from what I am seeing in Canada/north america:

Business web: there are some simpler apps which are used for data entry with the internet. Because of security issues and concerns internet based apps are only used to send public data or lost risk information.

Business desktop: high graphic programs such as AutoCAD, simulations, subsurface work are all desktop based. I can’t see this work being performed on the internet as the CPU workload is too high. Desktop programs are going to be around for a very long time. Having said that, the ability to share simple data interconnectivity between groups (ie zoom) is very important.

Personal internet: simple browser fun programs will be using the internet and personal chat.programs in real time. Longer chats require the internet personal devices and are hindered due to short battery life.

Personal desktop: gaming, 3D, virtual reality, all are performed on desktop because of the graphic-intense work and calculations. Additional hardware and extremely high bandwidth use means that thia technology will likely remain in the desktop realm.

Security: home and business security such as video, monitoring all require desktop-like apps with occasional video/audio use. This is heavily desktop apps with some internet use.

Desktop apps are going to be here to stay as more information, sensor, and video data is requested. Connection to the internet is very important for remote monitoring and communication of desktop apps. Internet apps are very simple and may remain so because of internet corporations charging data to the masses. Caps on internet bytes-used will continue to severely delay internet application-only use. Data will be used on local apps and only compressed-secure data will be sent over the expensive, toll-charging internet.

This is what i tend to see in my future-telling crystal-ball. :slightly_smiling_face:

1 Like

Thanks to all for the inspirations…
I have and had the fear that I might have bet on the wrong horse. This was also underlined by Geoff’s mail.
But I also think that especially on the German market there is still a skepticism towards sensitive data on the net.
But I will see if I am right in the next months. Keep your fingers crossed for me :wink:

I’m currently building a “double” app : a desktop and a web that share the same database
the desktop app is for the people of the company
the web app is for the customers to access their account with a more simple interface.
the two can coexist, and complete themselves.


Don’t forget another important element: selling desktop apps Windows or Mac, is relatively simple, through online stores, such as the Mac App Store, and the Windows Store. Sure, the gold rush has somewhat receded, with the advent of mobile apps, but they remain profitable.

Selling a web app, on the other hand, is only possible in a corporate environment, usually bespoke.

Although Jean-Yves just posted another kind of duality.

This. The future in the next 30 years will be compound of:

  1. Native, fast, using all resources, solutions in diverse platforms (Microsoft OS’s, Apple OS’s, Google OS’s, etc on Desktop/Mobile)
  2. Web solutions dynamically upgradable, but needing being online to work it and with too many limits.
  3. PWA. The best of the mix of 1 and 2. Google, and later Microsoft, are committed to fuse both. Look for “Project Fugu”. But this “thing” is work in progress, and I don’t intend to be an early adopter.

I’ve also thought about a duality like this Jean-Yves. The only difficulty i see is how to communicate with a web-based Database with the Desktop-App without having lost connections every few minutes.

I do that not having a persistent connection. All DB work is JSON based sent to a custom backend written in a non Xojo language, Xojo, or any client, can handle JSON messages and data records encoded as JSON. For the backend, the DB is always there, easy and fast connection for any call. For a small requirement, the backend app can be even at the localhost (same server as the DB).

the web app and the desktop app communicate each with a postgres database.
no connection has been lost, just use a timer to refresh it every 5 mins.

I’m still in a one way : I will not start with web 1 , web 2 is not ready
and customer want a deadline …
hopefully the desktop app can be done.

This is unsafe. A broken connection is not limited to timeouts.
Also, a DB port directly exposed to the web is an invitation for hacker’s invasions.

1 Like

I’m using a VPN for remote connexions, and local direct network in the office.
I’ve never got any broken connexion with desktop, using it on other apps for 5+ years.

1 Like


I don’t have such option, we need direct contact of the clients with the DB without special settings AND without internet exposition to port scanning and DB attacks.

I beleive the major questions is : What does who ever is going to buy it, prefers ?
Just as for the choice of DB, Postgresql or else, the bigger business you are targeting might tell you, we prefer Desktop…or we want this type of DB coz its already a choice we made for our IT… so its tricky to know what to choose if you do not know your market opportunities…unless you have no competitors for your service and they can really benefit from your solution…
I knew a business that used 2 networks, the first one was not even connected to the …too risky internet - you could come with the ultimate software it might not be enuff to have the owner change its mind about it !
:star_struck: :hugs:

1 Like

We’re developing ERP-Systems for the german market with more than 1000 active installations.
And we periodically asking our customers for the need of new technologies and that stuff. Until now, they never wanted a web based system, they want desktop apps with some internet based comfort (i.e. connecting to their distributors ordering systems, sending tax data, sending mails directly etc.).

Maybe i’m wrong, but this is the feedback we got from our customers.


Many desktop apps will have a Web dimension because of IoT.
For example, ERP system will have inventory sensors to reduce data entry. Sales system will augment customer experience with product info as they walk through the store.
These sensors and displays will use the Internet Protocol not short range Bluetooth or USB cables so much.
Desktop is bound to hardware, Web is bound to user. Xojo Web makes your app more flexible and pervasive IMHO.
An interesting scenario might be a web app running in an HTML viewer in a native app to allow the best of both: e.g. USB device support for a web app.