Make Apps for Linux

Desktop and mobile Linux users have a healthy appetite for new software. Linux app stores and repositories lack applications compared to their proprietary counterparts.

Technical enthusiasts are encouraged to direct their passion and creativity towards creating fresh apps for Linux users.

Too often they fall into the trap of creating more Linux distributions. We don’t need more Linux distributions. Stop making Linux distributions, make applications instead.

Why create more applications

Scratch an Itch

Ever had an idea for an application you personally need? You may find others have a similar desire for your application idea. Scratch that itch.

Broaden the ecosystem

New applications can inspire new developers on Linux. Building applications in the open allows developers even newer than yourself to learn and get started. Help build the next Linux app generation.

Be creative

Developing applications is a naturally creative endeavour. The sense of fulfilment gained when completing a project can be very rewarding. Exercise that half of your brain.

Collaborate

Building applications fosters communities. Linux communities often want to help developers succeed. Make something people want, and build a group of fans and contributors around it.

Learn new skills

Developing applications is a sought-after skill. There are many free training resources to help you learn to develop software. Level up your résumé!

Earn a wage

Build popular paid applications and services. It’s a myth that Linux users don’t support developers financially. Use this as an opportunity to create a new source of income for yourself.

Target all the Linux distributions

Unlike other platforms, Linux is a very diverse target. There are hundreds of Linux distributions, some more popular than others. Once published though, applications can generally work everywhere.

There are well documented software packaging and distribution systems which enable developers to get their applications into the hands of users.

Each developer framework and Linux distribution will have their own recommended route to users. When you’re ready to share your creation, the development documentation will signpost their suggested packaging guides.

Where to start

GNOME

The GNOME project builds the popular GNOME Shell desktop, and enables development based around Gjs and Gtk. Popular programming languages may be used with Gtk, including Python, C, C++, Rust, and even Javascript.

GNOME Developer Center

KDE Frameworks

KDE produces the widely-used Plasma desktop and the tools and frameworks to create applications. The KDE Frameworks have enabled the development of many diverse desktop applications. KDE Frameworks primarily leverage the Qt toolkit and C++ programming language.

KDE Frameworks Getting Started

elementary OS

elementary OS is a fast, open, and privacy-respecting replacement for Windows and macOS. The developers have built a desktop and ecosystem in which developers build applications. Their developer guide recommends Vala and Gtk for application development.

elementary OS Developer Guide

Electron

Electron enables developers to build cross-platform desktop apps with JavaScript, HTML, and CSS. Electron developers can leverage the vast library of node modules to build their own applications on web technologies.

Electron Documentation

Ubuntu Touch

Ubuntu Touch is an open source operating system designed to run on a variety of devices from phones to tablets and PCs. Native Ubuntu Touch applications are made using QML or HTML with their behavior defined in JavaScript, C++, Python, Rust or Go.

Ubuntu Touch Documentation

Developer opinion

We need to ensure a thriving app ecosystem to bring Linux to the masses. Our dream of an open desktop, accessible to all can only be achieved by enabling everyone to develop for Linux.

Neil McGovern

Neil McGovern

Executive Director of the GNOME Foundation

To make Linux the operating system we all want, we need great apps. Join us, you will find the tools to create everything you ever imagined!

Aleix Pol

Aleix Pol

President of the KDE e.V. and hacker

There’s a unique opportunity with desktop Linux to not only build great apps, but to help shape platform APIs and influence the overall direction of the desktop you’re publishing on.

Daniel Foré

Daniel Foré

Founder, elementary

Working on Linux apps is a completely different experience from developing for a closed ecosystem. Though we’re technically competitors, in the end, we’re all collaborating on the same bigger vision.

Jan Sprinz

Jan Sprinz

Member of the Board of the UBports Foundation

Sharing Your Creation

AppCenter

Publish and monetize your app on AppCenter, the open, pay-what-you-want app store and build service for indie developers. Publish without disrupting your workflow—the AppCenter Dashboard integrates with GitHub for releases and issue tracking.

AppCenter Dashboard

AppImage

Distribute your desktop Linux application in the AppImage format and win users running all common Linux distributions. Package once and run everywhere. Reach users on all major desktop distributions.

AppImage Packaging Guide

Flatpak

Flatpak is a framework for distributing desktop applications on Linux. It has been created by developers who have a long history of working on the Linux desktop, and is run as an independent open source project.

Flatpak Documentation

Open Build Service

The openSUSE Build Service is the public instance of the Open Build Service (OBS) used for development of the openSUSE distribution and to offer packages from same source for Fedora, Debian, Ubuntu, SUSE Linux Enterprise and other distributions.

openSUSE Build Service Help

Snapcraft

Snapcraft is a powerful and easy to use command line tool for building snaps. Snaps are app packages for desktop, cloud and IoT that are easy to install, secure, cross-platform and dependency-free.

Snapcraft Documentation