After years of struggling with native DEB/RPM packages, Nuvola switched to cross-distribution Flatpak packages to provide the best possible user experience. What are the benefits of Flatpak?
Nuvola Apps are provided as Flatpak packages that can be installed on every modern Linux distribution. Flatpak apps run in a sandbox and are in control of their dependencies, which allows us to maintain high quality and availability of all features across all distributions. This goal couldn't be attained if Nuvola depended on native packaging formats such as DEB and RPM packages. Yes, we tried & failed.
Although installation experience improves over time, we maintain verbose installation instructions to make it easier.
Flatpak updates are safe because they never modify files underneath a running Flatpak application, which could make it crash and eat all your homework. Instead, the data belonging to the old applications are kept aside untouched until the last instance exits. Taking advantage of that, Nuvola provides continuous updates. When a bug is fixed, it is delivered to you as soon as possible. When a new feature is added, you can use it right away.
Since the web platform is continually evolving, web engines need to catch up and so does Nuvola. However, it was not possible in the past.
Before Flatpak packaging, Nuvola depended on your system to provide a web engine library called WebKitGTK+. Although the library had constantly been improving, releasing bug fixes and security updates monthly, most distributions didn't keep it up-to-date and it was a dreadful experience to use it on Long-Term-Support distributions (e.g. Ubuntu LST or Debian Stable). We didn't have any other choice than to stop supporting these old releases leaving users with a terribly broken user experience.
The switch to Flatpak packaging allowed us to always use the latest stable WebKitGTK+ with all bells and whistles. Unfortunately, it wasn't enough. While web streaming services had been moving to use Media Stream Extension (MSE) instead of Flash plugin for audio playback, WebKitGTK didn't support this technology. The Flatpak packaging rescued us again as we could replace WebKitGTK+ with a better web engine, Chromium Embedded Framework, which supports MSE. Nuvola could finally offer audio playback without Flash plugin! Note that third-party builds haven't switched the new engine yet, so you can expect web compatibility issues there.