# Desktop apps aren’t dead: when they make sense

> Almost everything has moved to the browser, but not quite everything. When a desktop app is still the right choice, and what it involves beyond the code.

Simplix · desktop-apps, web-apps, architecture

Over the last fifteen years, almost all business software has moved to the browser: accounting, CRM, inventory, communication. For most apps it’s a good move: nothing to install, work from anywhere, updates reach everyone at once.

But “almost all” doesn’t mean “all”. There are situations where an app installed on the computer does things the browser can’t do, or does much worse.

## Where desktop is still the right choice

**Computing power and large files.** Design, 3D modeling, image or video processing, calculations on large data sets. A desktop app uses the processor, graphics card and disk directly, without uploading gigabytes to a server and back.

**Equipment connected to the computer.** Fiscal and label printers, scales, barcode and card readers, lab or production equipment. Many communicate through ports and drivers that a browser can’t access, or can access only partially.

**Working without internet.** Field teams, workshops, rooms with no signal or networks isolated for security reasons. A desktop app works locally and syncs with the server when the connection comes back.

**Add-ons for the programs you already use.** Many professional programs allow extensions: plug-ins for design software, add-ons for office suites, modules for accounting software. They run inside the program, so they are, by nature, desktop software. For example, for the [hashtagBIM](/en/projects/hashtagbim/) platform we built plug-ins for architecture software that link the model in the design program to the specifications on the platform, in real time.

**Data that must not leave the company.** When data is confidential or regulated, an app that works locally, on the company’s computers, simplifies things a lot.

**System utilities and services.** Programs that run in the background, monitoring, syncing or automating tasks on the computer.

## The technologies, in short

There is no single technology that fits every desktop app. We choose based on the requirements:

| Technology | When we use it |
| --- | --- |
| **Rust, C++** | maximum speed, low memory, direct access to the system and devices, plug-ins for other programs |
| **Go** | fast utilities and background services |
| **C# / .NET** | Windows apps tied to the Microsoft ecosystem |
| **Tauri** | a modern interface, the same on Windows, macOS and Linux, with very small apps |
| **Electron** | a modern interface, with the full web ecosystem |

The difference between the last two matters: **Electron** ships an entire browser inside every app (that’s how Visual Studio Code or Slack are built, for example), so apps are larger and use more memory. **Tauri** uses the web component already present in the operating system, and a minimal app can be under 600 KB[^1].

## What a desktop app involves beyond the code

A web app is published on a single server. A desktop app has to reach dozens or hundreds of different computers and work on all of them. That brings a few things someone has to take care of:

- **Installers for each operating system.** Windows, macOS and, if needed, Linux, each with its own format.
- **Code signing.** On Windows, an unsigned program triggers security warnings during installation. On macOS, Gatekeeper checks the developer certificate, and apps distributed outside the Mac App Store have to be submitted to Apple for checking (notarization)[^2]. Without these, users see messages that scare them or can’t install at all.
- **Automatic updates.** Otherwise, a year from now you’ll have five different versions on your team’s computers, each with different bugs.
- **Testing on each system.** What works on Windows doesn’t automatically work on macOS, and an operating system update can change things.

We include all of these in the project: we deliver signed installers and automatic updates, so users never reinstall anything.

## Desktop and web, together

The best solutions often combine both worlds: a desktop app for what has to happen locally and a web platform for everything else, with the same data. The team works on the computer, offline included; managers see the reports from the browser, from anywhere; everything stays in sync.

## How we choose

1. **What does the app have to do?** Heavy computation, large files, equipment, add-ons or offline work point to desktop. Otherwise, a web app is usually simpler.
2. **On which operating systems?** Windows only, or Windows, macOS and Linux?
3. **Who uses it and from where?** A team in one office, or people working from anywhere?
4. **Who maintains it?** The chosen technology has to be maintainable for years, not just deliverable.

If you have an old desktop app written in a technology that is no longer maintained, we can move it to a current one, keeping the data and features you need.

[See how we build desktop apps](https://www.simplix.ro/en/services/desktop-applications/)

[^1]: Tauri, [What is Tauri?](https://v2.tauri.app/start/)
[^2]: Apple, [Developer ID](https://developer.apple.com/developer-id/).
