Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How to sell apps on Linux?
131 points by sylvain_kerkour 15 days ago | hide | past | favorite | 154 comments
Hi HN, With the recent major advancements of Linux phones and tablets, convergence becoming a reality, I was wondering:

How to make a living creating apps for Linux, whether it be for the Desktop or the phones?

Do you have any experience or examples you want to share?

Are in-app subscriptions and enterprise support the only way to go? As the usual distribution channels (repositories and 'App Stores') don't seem to provide a straightforward way to sell software.

Take this for what it's worth, but virtually every example I see here is for applications that are supported on Linux, but certainly not specifically targeted towards Linux. Looking through the comments I see Jetbrains apps (which are built in Java and designed to be cross-platform), Steam, Sublime, Spotify, Dropbox, etc. I can guarantee all of those apps make the vast majority of their money from paying Mac and Windows customers, and they either offer a Linux version because they can afford to for essentially developer goodwill, or there is an interoperability story (e.g. a Dropbox user may use Mac most of the time, but needs it to manage some shared storage on all of their machines, including some Linux ones). Perhaps one exception I could see to this is highly technical or engineering focused software (e.g. Matlab, CAD software), but that software is largely paid for by large organizations like companies and universities.

HN folks may not like to hear it, but in general your "average" Linux user makes the absolute worst software customer: they can get tons of stuff for free so there is a high bar when it comes to willingness to pay for non-free software, they have very high demands about how software should work, and they are most likely to run customer configurations on different combinations of hardware, making bugs more likely, and they are usually quickest to switch if something better comes along.

And by the way, calling someone a "bad customer" is not really a putdown; being highly discerning about where one spends their money is more of a compliment.

> HN folks may not like to hear it, but in general your "average" Linux user makes the absolute worst software customer: they can get tons of stuff for free so there is a high bar when it comes to willingness to pay for non-free software, they have very high demands about how software should work, and they are most likely to run customer configurations on different combinations of hardware, making bugs more likely, and they are usually quickest to switch if something better comes along.

My charitable interpretation is that the average (voluntary) Linux user is a Pro user - but the average Mac/Windows users are consumers. What this means to the author is they probably shouldn't attempt selling consumer-type applications on Linux (which you noted have plenty of competing free apps). The additional challenge is that application distribution on Linux is seamless - your competition is one "apt get" command away, unlike Windows/Mac OS.

Author - you probably have to write specialized/pro software to get reasonable traction on Linux targeted at a specific niche. It may be difficult to achieve this as a solo developer, as it will demand a lot of your time to get the required depth; but you can always start small.

I mean, being a Pro user is part of it, but it's not the only story. Pro designers are famously fans of Mac's, and they are certainly willing to pay a ton for lots of different types of software.

I think part of it is just cultural. Linux got it's start after all as a free (in both senses of the word) alternative to costly commercial products. I mean, just look at Git, which was created after some original kernel devs (not just Linus BTW) wanted to reverse engineer/clone BitKeeper.

> Pro designers are famously fans of Mac's, and they are certainly willing to pay a ton for lots of different types of software.

That is true, and to compound to what you said earlier, Pro users are demanding and finicky, as Apple found out when it released Final Cut "Pro" X - which should have been Final Cut Prosumer. Apple lost years worth of goodwill overnight, because of shifting demographics of Apple users and Apple's own failure to balance the needs of casual, prosumers and actual video professionals. The same thing will happen to Pro designers, should Apple lose focus on attention to color accuracy and screen quality.

The trouble with Linux is that it's hard to build tools for people with strong opinions, who can build their own, better, free versions of the tools when sufficiently motivated - your Git example will suffice.

> they probably shouldn't attempt selling consumer-type applications on Linux

That's pretty damn insightful actually. Spot on.

I'm on Linux, and I pay for software. I have a PulsSMS, a PyCharm a Sublime licence, and a recurring sub for Dynalist.

There is no way I would have paid for those software if they would have not been linux compatible.

But on the other end, I understand how right you are: we are very bad customers.

I would not myself write a software and sell it only for Linux users. In fact, I would probably do the opposite: write a software that is paid for Windows and Mac users, but free for linux users. The later won't bring much money anyway, so it's already almost pro bono work, but you need the interrop story if you want to lure devs in.

I absolutely think that there’s currently an untapped market for paid software where as part of the deal you get the source code (obv preferable libre but could do shared source)

I can’t be the only one who got to the point where I simply won’t trust closed source binaries on my devices if I can avoid it, and would happily pay just to be able to verify that there’s no shenanigans going on.

Realized this as I tried finding an email client for iOS - save from the stock one there’s just nothing out there where I have any idea what’s actually happening to my data.

There is no norm or culture for business model, payment structure or payment mechanisms for this right now - am I alone or are we a larger untapped market waiting to be captured?

There is still a lot of piracy of paid software, offering the source code is only going to make that worse.

That's without considering a very real risk of repackaging and rip-offs, especially when these are paired with aggressive SEO. This alone makes releasing the source of a commercial software a remarkably shortsighted move.

You can follow all the same techniques that software companies on other OSes use, for example I bought Pycharm to use on linux, and its no different than anywhere else. Steam also runs on linux.

If you want to be OpenSource and sell your apps there are a few different ways. You could not provide any official downloads unless they pay, your paying customers could legally redistribute your code, but only you would have the official source. You could charge for binaries and provide code free of charge like Ardour. You could also sell support contracts, so paying gives them an offical account to ask questions on the forum or a number to call in.

But either way its the same as windows or mac, the only reason most non free software companies don't sell linux software is because there are less users, and they don't want to deal with making sure it works.

Steam is a great example. I'm usually very pro-FOSS, but when it comes to gaming, I happily fork over the $$$, and a surprisingly large number of games work just fine on Linux.

As I understand it, Valve have been explicitly marketing proton-compatibility as a low-hurdle standard to help Windows developers dip into the Linux market. Furthermore, changes are coming to the Linux kernel which will make it even easier for Proton to run Windows software.

The ease of proton compatibility completely obviates the tired arguments about how Linux users don't have enough market share.

This is unrelated but I love PyCharm and have only switched recently. I just wish there was an obvious way to open a terminal in window like on VSCode, there may be and I just don’t know it, but alt tabbing works fine for now

The documentation on the part of PyCharm: https://www.jetbrains.com/help/pycharm/terminal-emulator.htm...

One of the neat things with JetBrains IDEs is the 'help' menu. More than once I've done a "go to that menu and just start typing what I'm looking for"

Typing 'terminal' in that menu and then selecting the spot where it can be accessed from brings up the appropriate menu - https://i.imgur.com/Z3u4grB.png

Also, for me (there may be some other settings that I've got from other installs), at the bottom bar, left hand side the defaults are: "TODO", "Problems", "Terminal", and "Python Console". Selecting "Terminal" will launch a default shell. The "Python Console" brings up an interactive mode REPL.

And yes, there is a lot of tooling in JetBrains IDEs that are... in days of old it would be "here's a 300 page manual that no one reads." The Help Menu is incredibly useful for finding things - even experienced users. https://i.imgur.com/4duykxh.png - the IDE Features Trainer and Productivity Guide are really useful for discovery.

Thank you, this is why I posted this response. I knew someone would point me in the right direction.

There is a terminal tab at the bottom of PyCharm.

Terminal windows are built into Pycharm. They also automatically open with the project's virtualenv for each terminal instance which is great.

There is a tab at the bottom. If you can't see it, there you can trigger using Alt+F12.

Since the discussion here is a lot about business model and package managers etc., I'll throw in two pieces of advice from the business side:

§1. You want to make sure that your app solves a real problem well that users actually care about.

This is easy to understand, but sadly many talented software people ignore the wisdom and pay dearly. It fair enough if you WANT to write yet another text editor or you WANT to write something in Go and you pick yet another password manager as an exercise. But to build a commercially successful product, you should do plan for success and not leave it to luck. What areas are underserved for Linux, what groups have the budget to purchase your program and also are actual Linux users? (How) can you reach them?

§2. Develop apps that are better than the free apps.

This isn't very hard for many areas, since there are a lot poor free applications out there. However, many app types are not "mission critical", which means you can live fine without using/having them at all.

An example of a killer app was the spreadsheet app on the Apple II: people literally bought the machine to use the software. Of course there's a lot available today, so the bar for success is higher.

This! In my case, connecting to enterprise's walled gardens, such as an Outlook Exchange server or Skype for Business, etc. typically don't have out-of-the-box solutions for consumers on linux.

2 apps I paid for are those for which I couldn't really find a nice/free alternative: 1. Hiri https://www.hiri.com/ as I couldn't find a nice email client to work with Outlook Exchange 2. https://tel.red/linux.php Skype for Business client for linux

I think this category of apps have something going for them. I have since moved to WSL2 though and have found it to be a nice compromise for even serious work.

I wish I could upvote this multiple times. If you want people to give you money for what you do, you have to _bring value_ to the table. Don't just put out something mildly interesting and then beg afterwards for donations of "support" from your non-existent community.

Sublime HQ Pty Ltd, developers of Sublime Text and Sublime Merge sell licenses and use the package managers of each distro and host their own package mirror.

> Sublime Text 3 includes an auto-upgrade mechanism on Windows and OS X to make upgrades a snap. Instead of going against the grain of the Linux ecosystem, packages and package repositories are provided for most of the major distributions.


Speaking as an end user: I deeply appreciate this particular approach. Sublime is one of the few {paid,proprietary} applications that I use on Linux; being able to install it with my normal package manager reduces my cognitive overhead and keeps me reassured that updates do indeed go through.

That seems like a ton of effort for them to keep up with, though. Would it not be easier to make an appimage?

I use a smaller Linux distribution. I checked the package manager, and there is no Sublime text package. It is available as a "third party" package, which I think fetches a package from the third party's website, then repackages it in the local format. It would mean that I would need to check the third party repository for updates. Alternatively, I could probably find it in the snap or flatpak stores. Not a big deal at all, but I do get nervous when I can't find something in the package manager and can't find an appimage on the company's website.

In short, I really like appimages. Please make appimages!

> That seems like a ton of effort for them to keep up with, though. Would it not be easier to make an appimage?

It's really not. At SublimeHQ we simply create a deb, the rest of the packages are generated from that automatically. Obviously there's some high initial cost in setting all that up but changes to this kind of infrastructure are very infrequent.

appimages/snap/flatpak cause huge problems for development tools. You need to be able to run system executables in the system environment for stuff like build systems, git, etc.

Of course it’s effort, but that’s what end users are paying for! The best software in the world isn’t much use to me if it requires me to use a separate, non-first-party distribution system on Linux.

Distribution is important -- I can't financially support the program if I can't install it on my computer.

However, my money can only support a finite amount of effort. Every bit spent on packaging is taken away from improving the actual program, which is what I really hope I'm paying for.

> Every bit spent on packaging is taken away from improving the actual program, which is what I really hope I'm paying for.

Sure, so the reasoning goes: you make it as easy as possible for the 95% of users who like your software (but not enough to change their host to install it), and hope that the remaining 5% are die-hards who are willing to do it themselves. That's why Sublime Text supports the five flavors that it does.

Put another way: you can make it so that your engineers spend almost none of their time on packaging, but your average user isn't dedicated enough to wade away from their default packaging ecosystem. Better to spend a very modest (as other commenters have pointed out) amount of effort supporting the common package formats than to throw those users away.

I probably have a bad impression of how much effort is required to maintain packages for various distributions, then.

My only remaining point is that AppImage is supported by all of the distributions they support, as well as a few they don't.

Building distribution packages really doesn't take all that much effort if your build system is sane, and once the initial work is done, your CI will let you know when maintenance is needed.

When you're building your own packages, you can reasonably take shortcuts that distros would not allow (like internet access during build, or vendoring some tricky dependencies), so for many things the packaging just amounts to specifying your dependencies, running your build, and perhaps applying some distro-specific tweaks.

This is true, but a lot of the Debian tools are open source biased in that they really don't want you putting together binary packages that install things in to /opt, and don't provide a super convenient way to determine binary package dependencies without going through one of the debhelper build scripts

Most packaging systems are fairly easy to use. It only becomes a problem if you're doing very weird things, like using very old, or very new libraries, or spreading files all over the system.

Can you point us to a comparative review of appimage, snap, and flatpak? Clearly there are many apple-to-orange tradeoffs, leaving package naifs like me a bit baffled.

Not sure about the specifics of your distribution as you didn't name it but that sounds like how it works on all distros supported in the link above. E.g. on Ubuntu you're adding a 3rd party repository to your apt sources not just pulling it from the Ubuntu repos out of the box.

> That seems like a ton of effort for them to keep up with, though. Would it not be easier to make an appimage?

I'm curious where does this myth come from. Making a Debian or an Arch package doesn't seem any hard.

I am not a Linux guru, so I might have the wrong impression about how much effort is really needed. But I don't think it's just "a Debian or an Arch package". Having a .deb and .rpm gets you most distributions. Arch uses something else. Then Solus uses .eopkg, etc. Probably, you throw up your hands at some point and just make a snap or flatpak package.

Sublime probably has the right of it in maintaining their own repository. Otherwise you're stuck waiting for approvals, or you need to provide instructions for what to do with the package once its downloaded from your site (my printer drivers were like this).

I really only have perspective from the other side: as a user trying to install stuff.

Finding stuff in the package manager is nice. I still have to go to the project's site to check if it's the most recent version, but usually I don't care that much.

Then there are oddities like Calibre, which tells you to ignore your package manager's version and paste some stuff into your terminal with sudo.

Sagemath just tells you to download a binary, which is pretty much the same experience as an appimage. But their files are named sage*Ubuntu|Debian*.tar.bz2, so I'm honestly not really sure what they are or if they work with, say, Arch. I'm pretty sure everyone just installs it through conda anyway.

So I'm always pumped when I see an appimage on a company's site. I know it's coming from the source, I know it's the latest version, and I know all I need to do to run it is to make it executable.

> But I don't think it's just "a Debian or an Arch package". Having a .deb and .rpm gets you most distributions. Arch uses something else. Then Solus uses .eopkg, etc.

Packaging for Debian is pretty much just a tar you throw all your stuff into. Same for arch. Once decided I wanted to package a personal project for arch and was done integrating it into gitlab ci without any prior knowledge.

Your main problem as a company is that your stuff is proprietary and proprietary things dont get accepted into the default repos period.

> So I'm always pumped when I see an appimage on a company's site. I know it's coming from the source, I know it's the latest version, and I know all I need to do to run it is to make it executable.

As a user, I'm always horrified when I see an appimage. It tells me that the developement process of the project is so broken there was no way for them to target my system. It could have openssl from 2007 in there. It may be vulnerable to bugs that where patched decades ago! On top of that, the software wont even update with the rest of my system, leaving me as the maintainer of my software, the whole reason package managers where invented...

Because a Debian package doesn't magically work everywhere. It's not even guaranteed to worl on every Debian system, due to API/ABI breakages in Debian Stable versions and then people also use Debian Testing and Sid. Hence if you want to declare support for Ubuntu 16.04, 18.04, 20.04, Debian 9, Debian 10, ... you either need to rebuild for each of those systems, or monitor ABI/API compatibility with proper testing, or link statically all of the dependencies you use. None of that is as easy as preparing a Debian package.

It's a painful process yes. When you want to use a library that depends on OpenSSL 1.1.1 for instance but you're stuck with 1.0 on CentOS/RHEL 7

It probably is easier with appimage, but I don't think the difference would be that large. Certainly not a ton of effort.

Interesting. Does Sublime come with the source (how is it licensed?) when you purchase it?

No, it is closed-source with an open plugin API that you can use to extend it.

I believe Sublime's source is open source but not for re-selling. You can use it 100% free but it has a popup asking you to upgrade to a license once every few weeks or so.

This is incorrect. Sublime's source code isn't published at all (or even leaked). You are correct that you have use it for free with a nag window, although this is against the license beyond an unspecified "evaluation period".

It's not open source, did they change that?

I love it that the Sublime producing company permits one license regardless of the machine, so I can have the same license file on all my machines (Mac and Linux laptops, desktop and servers). It was money well spent.

Really wish there was a HOW-TO on Linux software packaging for all distributions. To get to the state that ST3 reached seems to involve a lot of research.

I'd also be really interested in this, even if it was only for the major distros.

+1 for the "setup-your-own-repo" approach. Can't speak for every distro, but I loved this across Debian/Ubuntu/ArchLinux - having updates coming via a single source, ie my distro's package manager.

I use their Arch Linux repository. Everything is simple and just works.

It's a popular subject in the shareware/isv circles and the stable consensus is that it's a phenomenal pain in the ass.

From the userbase being generally against the very idea of paying for software, to the complete clusterfuck of the package managers, the amount of effort required to sell and support native Linux apps is simply not worth the effort compared to even Macs, leave alone Windows. There are some highly visible exceptions, but they are just that - hard to reproduce flukes.

There has been commercial, non-free, software on Linux since the early days (editors, office suites, CAD software etc.). Generally they don't try to work with package managers or otherwise integrate too deeply with the operating system (because why would you?).

Make it self contained and distribute in a tgz file. Don't try to make anything complicated. Look at the official release of Firefox for ideas.

games do it.

Take a look at https://www.gog.com/

There are a surprising number of native linux games. They tend to be compiled for ubuntu, but probably work on other distributions

this is basically an ephiphenomenon of cross-platform game design frameworks, though (not to mention steam proton); not many game devs set out with the primary intention of supporting linux, and many fail to maintain it

After the Joel on software forums closed, where do shareware/isv folks congregate nowadays (if you don’t mind sharing)?

Shareware scene changed a lot in recent years. The gap between those with ambitions and doing impressive things and those still trying to survive on trivial products is now very big. These two crowds don't mix and those who do well aren't terribly interested in forums to begin with. They do however share some insights here and there, on Twitter, blogs, etc. The trick now is to understand which companies are the one-person shops and ISVs, despite the appearances, and which are in fact larger shops.

I'm a long time Linux user who buys software. If you want me to buy it, these are the things you should do:

1. Provide an RPM repo or COPR repo I can add so it is managed with dnf. You'll also want to provide .deb too

2. Make source available with payment, and allow modification for individual use. It's ok to prohibit redistribution as long as personal use/hacking is ok

3. One time payment is a lot more attractive to me than a subscription. I'm beginning to despise subscription software

What are you thinking of making?

> One time payment is a lot more attractive to me than a subscription. I'm beginning to despise subscription software

As an aside, i don't mind the middleground for subscription; buying once to own it, but getting updates for only 1 year. I've experienced this with TablePlus and DataGrid and it's been pleasant.

I agree, i dislike subscriptions and i avoid them now. But i don't mind paying for updates at all. If anything it feels reasonable and inline with my desires as a consumer - continued support.

Too many products i've bought feel abandoned in favor of an upcoming 2.0 to again get money out of me. Give me rolling evergreen releases with a sub-like, but let me own what i've bought so i can be sure it will always work for me. Seems like a good compromise to me.

Seconded. I dislike a forced-subscription model, but I'm definitely onboard with this type of hybrid model.

Often times I go between jobs where a particular piece of software is no longer relevant to me, such as perhaps DataGrip from JetBrains. I occasionally have use for it again, but in general I'm no longer interacting with a rdbms anymore in my current role.

Thanks to the hybrid subscription model, I can stop paying for the tool but keep my last 'lifetime' version as long as I care to use it. And if I pick up a job in the future that makes heavy use of it, I can re-evaluate whether it's worth subscribing for another term to get updates.

In the same vain, I have an active sub for PyCharm (also from JetBrains) because as a Python dev, it makes a lot of sense for me to keep up with the new features as they continue to provide increasing value.

The Jetbrains IDEs all have a database explorer built in. Which is handy for (local) databases related to your project.

If you write SQL directly in your app it'll even highlight and autosuggest according to your actual database.

Yup. And they're tremendously useful (and the reason I don't normally need a db workbench tool). However, at a past employer, I inherited an absolutely awful CMS/fulfillment system/CRM hybrid that was bad at all parts of it's purpose.

It proved to be dramatically more efficient to have a full blown DB tool just dedicated to exploring and interfacing with that monstrosity's database and have my regular PyCharm instance for code dev and light touches against the DB.

Additionally, at another time it proved nearly impossible to get the IDE db explorer to work properly with the jdbc drivers for a couple of large-scale hosted data lakes, but was rather straightforward in DataGrip. I have no clue why it was an issue with the explorer in PyCharm, but since I got it working in DataGrip I rather quickly moved on and accepted that I was gonna use DataGrip for the data lakes.

That said, I definitely love the db explorer feature, and recommend everyone take a look at it if you're already using a JetBrains product.

Also, just another shout-out to JetBrains again for their hybrid subscription/lifetime ownership license approach, demonstrating that paid software can exist in the realm of linux systems and that you can make a successful company without resorting to bleeding your customers dry over subscription fees.

This is the model we use with self hosted Domestica (https://about.domestica.app). You own the premium version, indefinitely, up to the version your subscription expires on.

Could I ask for any examples of software you're buying on Linux? Outside of games (Steam), niche software (ModelSim/QuestaSim), and tools that I just don't need the full power of to justify their cost (MATLAB), I've found that the Linux ecosystem doesn't have many paid tools.

For one instance, I'd be willing to pay for Photoshop - and I did pay for Photoshop when I was still a Windows user. But instead I use some combination of okay free software (GIMP) and unpolished free software (Hugin) instead, because that's what's available.

I can’t agree re: subscriptions. As a kid I always wanted photoshop/flash/etc but they came with 500-1000$ price tags. I’d imagine now that you can buy a subscription to photoshop more poor kids like I was are able to use it.

I certainly couldn't afford Photoshop when I was a kid, but I can't imagine that being too different with a 20USD/month subscription. Maybe there are some people who can't afford 500USD software but are fine with paying a hefty monthly fee, but I wouldn't bet on it too much.

Since we're discussing kids, I'd think boxed software would be much more "giftable", therefore easier to get as a kid. A game or program for Christmas? Sure! A WoW/Photoshop subscription? I wouldn't gift it. But that might just be me fighting against trends everyone's adopted already...

fwiw I saved up for months to buy a student edition of Flash CS3 for maybe $150 when I was about 12 years old. I later received a copy of CS4 (flash+photoshop+a few more) as a gift from my parents. I'm still using that copy of photoshop 15 years later. I don't need the new features because I'm only an occasional user.

> 2. Make source available with payment, and allow modification for individual use. It's ok to prohibit redistribution as long as personal use/hacking is ok

Does any consumer software do this? Never encountered that...

RHEL (I'd love for more software to start doing that, but understandably you'd hesitate, though my personal morality compass doesn't see any difference between getting commercial GPL software for free and piracy, so if I wanted to get it for free I'd do it either way)

I use some paid applications on Linux: inSync, MATLAB, StarUML, Pagico, Spotify and Dropbox. Last two are maybe services but, they have clients which change capabilities with license level.

If you want to sell me Linux software, provide a fair pricing model and provide a native app (Spotify is Electron but, it's not a bad offender). Also, please do not neglect your app just because it's on Linux. I don't like to feel neglected just because I use a free & open source OS. You'd kill my loyalty.

Some of the applications are subscriptions, some are not. Some require paid upgrades, some do not. If I feel that your software worth the money you ask for, I'll pay for it, no questions asked.

I think inSync, StarUML and Pagico has great pricing models. The other examples I have work as a subscription already.

All of the applications I install (except MATLAB) comes as a .deb package. No frills. Plain .deb. Sometimes a repo is attached, which makes it nicer.

A bit of HN pedantry - Spotify uses CEF (Chrome Embedded Framework) and not Electron.

So this clarifies why it behaves better, thanks. Never had the time to dig/research it.

Thanks again.

I don't think using CEF or Electron makes any difference. Some apps are just coded or structured better.

I'm about to get downvoted to oblivion but the solution here is don't sell apps on Linux.

People on Linux don't pay for apps. Target a platform like iOS where users are willing to pay for apps. 85% of total app store volume across iOS and Android is from iOS.

Not going to downvote you, but if you are downvoted it's probably because this isn't true. Take the video game market as an example; people are very much willing to pay for video games on Linux (via Humble Bundle, Itch, Steam, or GoG) even when the games are usually DRM-free and could trivially be pirated.

If there's not much of a market in other areas, then frankly I'd have to say it's because the open source ecosystem is simply too good on Linux. There's already an app that can do what you want for 99% of use cases, and it's open source and free. Hard to compete with that. You wouldn't criticize Windows because someone can't find anyone to buy their web browser; Linux is like that, just for most every application.

It is hardly enough to sustain a business, the other platforms are the ones that keep the lights on.

I largely agree with this. LibreOffice is great, Octave is great, Firefox / Chrome, GIMP, etc.

There are already a ton of free and great applications on Linux.

I'm not a Linux user because it does cost me nothing. I even have a couple of unused Win Pro licences around here. I'm a Linux user because I like my private freedom.

JetBrains does about $300M annual revenue, and a substantial portion of that is from Linux users. Clearly people on Linux do pay for desktop apps if they offer enough value.

I would love to see the actual numbers there. JetBrains uses Java for Windows/MacOS portability, so the marginal cost of supporting Linux is negligible. I wouldn't be surprised if the actual Linux revenue for them is about 1-5%.

About half of the users of JetBrains Software have a development environment on linux (beating MacOS). And about 60% of the projects that the developers code are being targeted for linux (presumably for Servers, but still a lot) Source: https://www.jetbrains.com/lp/devecosystem-2020/

Sure, but about 90% of their userbase is happy with the free community edition and will never upgrade. What is more interesting is the distribution of the remaining 10%.

The Humble Bundle used to release actual numbers. For sales that offered games on Linux, Linux users accounted for around 20% of revenue, often beating out Mac. Interestingly enough, for sales that only offer Windows-only games, Linux revenue still reaches 1-5%.


Heavy Linux user here, and I'm more than willing to pay for good software that provides a vital service for me. That being said, there definitely is a fine line, as if the software doesn't provide value over a similar oss/foss tool, then it's not justifying it's price.

PyCharm is a well-know paid software that has a strong Linux/OSX presence, as well as almost all other JetBrains software. Sublime Text is another.

I've been using Linux on the desktop forever. Today, I mainly use Pop! Os.

Anddddd, I've happily bought and use paid software on Linux all the time! I play Steam games, use InSync (a Dropbox-like service for Google Drive), and several other paid apps/services. I'd love it if there were more!

I'm a Linux user, and I pay for software without hesitation. In some cases I even go out of my way to try to pay for something, which isn't always accepted by the developer(s).

I am both a developer for and user of Linux.

Paid-for software is best distributed using your own repository. @wesamco's comment describes how Sublime Text is distributed and it works well. Other paid-for softwares have similar success.

I use Synergy. To install, I need to download a pre-built application. When it runs it will ask for a license key. I type in the license key and it goes and verifies it.

Both solutions solve different problems. The repository solves package management: installation, versioning, and dependency chains. License keys ensure that the software is paid for.

As someone who used to work on Synergy I can assure you that building a .deb or .rpm that works across as many distros as possible is a royal pita.

Around about the time I was working on it half the distros users wanted to use were on OpenSSL 1.0 and the other half on 1.1.1. even Debian and Ubuntu were split due to their release cycles being different.

Also, Linux support was never a priority for the company. You should probably save your money and just use Barrier, a FOSS fork.

> As someone who used to work on Synergy I can assure you that building a .deb or .rpm that works across as many distros as possible is a royal pita.

I don't disagree.

> You should probably save your money and just use Barrier, a FOSS fork.

Synergy has worked for my needs and so I paid for it.

How does Barrier differ?

> How does Barrier differ?

The people who work on it give a damn

Make your software free to use by individuals and small companies, but require a payment from large companies (with e.g. >$1M revenue).

This way you avoid being pirated too (large companies typically don't pirate).

> large companies typically don't pirate

Depends on the definition of pirate. If you publish software as "free for personal use only" I can bet it will still be very widely downloaded and used by employees at large corporations, if for no other reason than to not have to go through the purchasing approval process.

Based on my experience working at large companies this is largely not true. Large companies will generally have a dedicated legal team with a relatively high amount of organizational influence, and this is such a massive and obvious potential liability they will make sure that nobody is using software without paying for it.

I'm sure there are some exceptions, and those exceptions will likely no longer be exceptions after someone manages to figure out they're using their software illegally.

Yep, that's the reality.

We had a product that was free/paid based on home/work usage and the amount of "home" users coming from corporate IP spaces was absolutely staggering.

Similar to the Unreal model. I've been thinking about this model a lot, and I love it, and I strongly believe it has a place in the future of software, but I don't know how it works in practice.

What payment do you require? Unreal takes a percentage over your $1MM revenue, which works great for selling software, but how does it work for e.g. SaaS? Taking a cut is... unreasonable. Not to mention, it's unlikely businesses want to reveal their revenue. Do you charge a flat fee? Per seat? What about resellers?

Except when you start a software business, individuals and small companies below $1M revenue, will be your only customers for years before you establish sufficient market presence.

One idea that I think could be interesting is to take jobs working on existing free software projects. Maybe a project has 150 open issues and someone is particularly bothered by one with no attention since 2018, so they're willing to pay for it to be fixed. This way you still make money (if you can find such deals/jobs) but you aren't locking out a share of users by charging everyone for a piece of software.

I've seen a bit of this sort of dynamic on the omemo.top site, where you can see which XMPP clients have OMEMO support. In the case of clients lacking it, they link to open issues, and some show cash bounties on them.

I care about free as in freedom more than free as in no cost, but I don't think I've used any paid software... pretty much in my whole life. Unless you count using MS Office or Photoshop in a school computer lab where the school had paid for licenses for all the machines. (and even then it was rare for me to use any non-gratis stuff)

Ubuntu has a store, Steam allows (any/game related?) software, Itch/Humble are kinda common (again kinda gaming related)

But buying little apps is simply not common on linux. Sure many would but why when you can just apt an easily alternative.

If you produce niche or major software subscription, buying licenses and co are more common anyway.

Note though that the Ubuntu store is only for discovery, it doesn’t have any support for paid applications. It did, but this was deprecated a couple of years ago as the then Ubuntu store service started changing to accommodate snaps.

Paid applications do exist but they must implement their own post-installation payment mechanism - the snap store doesn’t provide any facilities for this.

> But buying little apps is simply not common on linux. Sure many would but why when you can just apt an easily alternative.

Because I want to pay people to write good software for me. I hate using OSX and Windows, but I want to have a DAW like Logic etc. My only options are stuff like Ardour, which happen not to work on my computer (because linux audio system is broken) due to alsa/jack/pulseaudio weirdness. And I have no leverage over Ardour developers. All I can do is:

* Look online to find solutions to my problem. This didn't lead anywhere.

* Download Ardour code and understand how it connects to the audio device and reproduce it, this way I can see the error. Luckily I can read code, most consumers can't.

* Send a message to Ardour devs/forums and cross fingers they help me out.

I want a company that produces software like MSFT, AAPL, Adobe etc and make it linux first and GPL. I understand that this is a terrible business model, which is why I want to pay extra money for this shit. Like Logic on OSX is $200. I want to pay $300 something that's approximately like that but works on my distro as flawlessly as Logic works on OSX.

I just want to not read pulse audio man files when I need a DAW, in exchange for $X * $200.

I'm just daydreaming, I know this stuff will never happen. I'm not sure exactly why. I hate the modern software ecosystem.

It's not worth the trouble. I heard rants about apple being hard to develop for where you have very limited line of hardware, have swift and plenty of high level APIs, App Store and very loyal userbase.

Linux is not for average software consumer, you have to know how computer works in order to use it. The simple fact that linux lacks MS Word/Excel, Photoshop is already hints that something is off.

Linux is just a kernel and then from 2% marketshare you go down for marketshare of each distribution you want to develop your software for and try to sell to consumers who asks why your code is not GPL, why I can't modify it on my own.

I've tried gaming on linux and can't describe how bad my experience was even on popular titles like CS:GO, where you have lower FPS and glitches with graphic settings, like not able to play stretched resolution sometime and then some update literally broke a game for a while. You have to jump loops all the time to just make programs run and the issue here is that, as a linux user, you expected to do it and it's just normal, when on Mac/Windows the user expected to just know nothing and all issues got fixed by software vendor.

Just try to install firefox on linux, https://help.ubuntu.com/community/FirefoxNewVersion (you have to find this page as well), show that screen to average computer user and see what happens. Compare it to Mac OS https://support.mozilla.org/en-US/kb/how-download-and-instal....

Reaper is absolutely amazing, works on Linux just fine (natively! And supports LV2 plugins) and it's only $60 (and the demo version is a WinRar-like "I'm still using it" button). It's also a completely no-bullshit approach to software development, no subscriptions, nothing like that. Buy the license once, and upgrade to a commercial license (which is still less than the price of something like Ableton or Logic) if you are using it to make more than something like $20k. It's proprietary, but it's completely customizable, even coming with its own scripting engine. I think you should give it a shot, GPL is the only thing missing from your list of requirements, but it's also made by a small independent team that doesn't do the usual crap associated with bigger apps.

A good alternative to JACK and PulseAudio is PipeWire, which for me has worked basically completely flawlessly and supports JACK and PulseAudio bridges natively.

Sounds good, I'll check it out.

I was mostly giving DAW as an example though, same would go to any kind of specialized software.

EDIT: unrelated but, from Reaper purchase page:

> If you own multiple computers, you may install the same license key on all of them, as long as you only use REAPER on one computer at a time.

I love this, let's not pretend people have a single computer. A have multiple linux workstations, and an OSX workstation. As long as it's me, the person who bought it, is using the software on different machines, I should be able to get away with single license.

> I was mostly giving DAW as an example though, same would go to any kind of specialized software.

Yep, I'd absolutely love a real Photoshop competitor made in a similar spirit to reaper. Photoshop just has too many niceties that something like gimp doesn't even come close to (one that comes to mind is Select Subject - has probably saved me hours of work and does a much better job than I ever could manually)

> > If you own multiple computers, you may install the same license key on all of them, as long as you only use REAPER on one computer at a time.

> I love this, let's not pretend people have a single computer.

This is what I meant by no bullshit licensing, it's really refreshing to see a professional and competitive product be this way when it comes to user freedom. I'd like it to be open source, but this is probably the next best thing.

Just a shame that most audio plugins don't follow the same philosophy, otherwise I'd happily be using just Linux for music production (though you can at least make most windows-only plugins work on linux through wine)

Commenting as a reminder to follow this up :)

Most what steam offers is game related, but the categories they have are rather broad, one of them being "utilities".

Thank you!

I completely forgot that Steam is not for games only.

Make something useful for Linux users. TurboPrint is an example of Linux software I have bought. It's more capable than CUPS for my use case.

It solves a known problem. It sells via a website. Makes enough money to have been around a long time and charges enough to stay up to date.

It is also in a market segment that is orders of magnitude larger than Linux phones an tablets are ever likely to achieve.

Good luck.

I'd really wish for a paid app store on Linux to be more common, especially for open source apps. Make it a monthly recurring donation even, but send me a proper bill for bookkeeping.

Look into the app store made by the elementary os team. It is very similar to what you wish for.

Details matter, but without anything else to go on, I'd consider an open source projects, then sell a professionally managed service that makes it easy for customers to use. Of course include backups, patching, and support as part of the management.

Projects like Piwigo (image editing, organizing and hosting) and SchedMD/Slurm are good examples.

Generally it's MUCH easier to budget based on subscriptions, then playing the prediction game for which users will pay $x for feature Y.

The Linux phone and tablet market is still too underdeveloped and fragmented for a real answer here. There are several possible approaches for Linux apps on desktop, but that really depends on what you are building, who your target audience is etc.

Make a living off it? Write the app in a framework that lets you one click compile and build for Android and iOS too. That's the truth.

Since I have no experience with GNU/Linux phones (only Android/Linux) but you're also interested in desktop answers: just look at what other paid software does that runs on Linux. When I go to sublimetext.com I just click buy and it gives me the option of paying for it with credit card or paypal. Or Atlassian's on-prem option: you just go to the site, pay for it, then get what you paid for. Keep it simple, no need for anything novel. Another example is factorio: again just an up front cost (though they should have offered at least the option to pay towards upkeep costs because they do a superb job and the game is already really "done" and they keep releasing more and more minor features for free).

If it's a subscription, the ongoing cost really needs to be worth it to me. I might donate much more easily than take a subscription, for example I pledged iirc 1% of K-9's (the email client) funding goal for a few months because I would like to get it out of its current stuck position even if I don't believe we need a person on an already-perfectly-functional email client working full time all the time. (I suppose here's at least one app example, though donations are of course not a business model. Then again, this is also about open source software, not a commercial app.)

Paid support would be interesting pretty much exclusively to businesses, from my experience. In general I'd like to say that good support is worth money also for private people, but looking at how often I've paid out of pocket for software support of any kind... After buying a product I just expect it to work, and if it doesn't, then either they fix it or I get the money back and stop being a customer. Feature requests would be something to pay for, but then the rates of that compared to spending a few hours hacking it together myself are again not worth it. You'd need some sort of crowdfunding model where people pledge together towards features, and I fear that might be over-engineering it.

elementary OS has an App Store: https://developer.elementary.io

I'm not sure if it'd be big enough to get you doing it full time though.

Man, I've been running Linux on a desktop (on and off, mostly on) since 2009 and I haven't ever paid for an application. Sure, I've paid support / development applications, have donated $, and have paid for SAAS, but never a standalone application. I'm not trying to discourage you or anything of the sorts. Just seller beware of your market and target audience.

I saw a comment below on self contained .tar. I think that's a really smart way to go. Or, make it Debian / LTS Ubuntu and a RHEL package. Support the big two. If anyone runs arch or something like that make them compile it themselves or ldd the binary.

This is probably my favorite (besides an official repo) way that I have gotten software on Linux. It's worked on every system I've run in the past 5 years (RHEL, Debian, Ubuntu, etc.).


Even games on Steam?

I have no experience with Steam :( since I don't game. I'm sure it's a great platform, though!

Well if you are focusing earning from desktop users check Elementary OS app store they have options to charge for app similar model to Apple's store.

If your target audience is developers or corporate check this license and their parent project https://prosperitylicense.com/

Develop for cross platform. People have mentioned PyCharm which has the same user experience on Linux, Windows and MacOS.

I recently bought a copy of Pianoteq for Linux -- was very simple, I paid and received a license and a download link. Someone has already built a package for archlinux so I just had to point that at the downloaded file from modartt and away we go. Very simple.

You sell support and maintenance contracts.

That's how busybox and the kernel get maintained. End user software gets written by the users themselves, business software is written by consultants.

Most of the users are willing to pay not to use closed software. Also the distribution channels aren't anything like app stores. They're usually a repo maintained by the community and you work with them to package your software ex: https://gitlab.alpinelinux.org/alpine/aports

If you want to push corporate garbage like most iOS apps at people just build web pages.

IMHO the bottleneck is non-availability of Linux phones and tablets. Once this is sorted out people will be willing to switch to them

Somehow the availability ( I am in India) is just not there as of now.

More often than not I pay for software my business uses as a subscription.

You could go for a "freemium" model where advanced features are payed-for, especially collaborative/multi-user ones, which will increase your userbase (individuals), that then recommend it to their company.

Collaboration/backup/remote-state features are also easier to justify as payed feature because you will need to store and serve content from a central location.

There are lots of companies with jobs in open source and other ways to make money from open source:

https://www.fossjobs.net/ https://github.com/fossjobs/fossjobs/wiki/resources

The bad news is, there's no single way to package your product. The good news is, nobody cares, as long as what you choose works.

Also, linux users arent averse to paying for software. They simply expect their software to be respectful. That most paid software also historically happened to be disrespectful is more of a historical accident.

Crowdfunding, freemium, support, hosted/managed services, pay to download binary. Different projects have different practices.

If your project brings enough value, you'll definitely get people thay pay for it. But for small software ("apps"), I personally don't see a market anymore outside of mobile.

The only apps I pay for on Linux are cross platform apps. Usually Linux specific apps have good open alternatives. The Ubuntu App Store has sell functionality but I never buy from it. I buy direct from the vendor.

I’m a 20 year Linux user now and I haven’t met in real life anyone who acts differently as a Linux user.

Linux phones are really taking off without a good app store? That doesn't sound plausible to me.

The usually come with the Gnome Software app store, which only provides free software.


Why would an app store be dealing breaking? Any service that you have to use offers a web page and good software (that doesn't abuse the users) ends up packaged and available in the OS repos.

This(https://build-system.fman.io/) looks interesting for building and distributing cross platform python-applications. Didn’t test it yet.

The only way is to force the users to pay via Web applications and SaaS services, really.

Softmaker have a free version and a pro version. The former is available in the public proprietary repos (for Arch, at least). The latter is a download and requires an activation key. Their free version converted me into a paying customer.

There was a site specifically for selling Linux apps called linapp.com or so, that I had seen now and then for some years, but on a check now, it seems gone or down. They had products priced from tens to thousands of dollars.

While checking for it, I found this review of it, which praises it on many points:

LinApp - Most Comprehensive Collection Of Commercial Linux Applications I Have Ever Seen:


The software I buy on Linux is pretty much all through Steam. Other than that I have the annual subscription for all of Jetbrain's IDEs.

Sounds like there's a market for tooling to sell to app developers on linux, but not so much a market for selling linux apps.

Sell customer support and then get bought by IBM.

Support or service subscriptions are probably your best bet.

The only software I have paid for on my Linux machines is IntelliJ.

The snap store was specifically designed for commercial use cases, IIRC

Maybe sell binaries for popular distribution.

Sell to corporations.

Ask the developers of Insync, UKUU and Aseprite.

They sell licences via their sites, with activation codes or Google authentication.

But if you want to make a living, I suggest making a Linux phone oriented application store first and foremost, and figuring out the DRM that way. Developers will come if an ecosystem is built for easy deployments and selling software.


> But any attempt to abridge access to code without mandatory payment is not only ridiculous but purely unethical

Is it ethical to pay someone to create software that wouldn't otherwise exist? Is it ethical to create the software and then refuse to deliver it until the check clears?

Is it ethical for a semiretired hacker in the US to build a 1 person SaaS company around software written by someone making do with ten dollars a day in the phillipines without sending them a dime?

You're literally against people making a living developing software for Linux...

You can ethically sell a service with your libre software.

Hmm ?


> If a license does not permit users to make copies and sell them, it is a nonfree license.

And it's because of misunderstandings like these that "free" should be renamed to "libre".

> and much of the software you will no doubt use to create your premium software was made with this philosophy.

Even the FSF considers selling software a good thing [1]

[1] https://www.gnu.org/philosophy/selling.html

> I don't care how many HN points I lose by saying this

5 at most

Artificial scarcity is an absurd and broken model. Please don't put yourself or your prospective users through that nonsense.

Aspiring to pay your bills by whatever legal means you deem appropriate is a fantastic model though, and I thoroughly commend OP for trying.

IOW, duh, FIRST solve the artificial scarcity of food and housing, THEN write free as in beer/license software. Stop doing it wrong.


What artificial scarcity?

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact