Ask HN: How to sell apps on Linux?

131 points by sylvain_kerkour ↗ HN
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.

161 comments

[ 2.6 ms ] story [ 169 ms ] thread
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.

Thank you!

I completely forgot that Steam is not for games only.

(comment deleted)
(comment deleted)
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.

Most what steam offers is game related, but the categories they have are rather broad, one of them being "utilities".
> 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.

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 :)
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....

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.

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.

https://www.sublimetext.com/docs/3/linux_repositories.html

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.
Interesting. Does Sublime come with the source (how is it licensed?) when you purchase 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.
It's not open source, did they change that?
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 is closed source, and ST4 is what made me remove VSCODE from my laptop.. 120 megs vs 1.2 gb of ram...

ST4 is a complete VSCode killer.

No, it is closed-source with an open plugin API that you can use to extend it.
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!

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.
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
> 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.
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.
> 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.

+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 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.
I use their Arch Linux repository. Everything is simple and just works.
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.
Support or service subscriptions are probably your best bet.

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

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.

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
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.
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 tab at the bottom. If you can't see it, there you can trigger using Alt+F12.
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.

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%.
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%.

https://cheesetalks.net/humble/

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%.
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).
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!

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

I want to phrase this with as much hostility as possible: Don't. Software cannot be owned or paid for and any attempt to normalize the opposite is cruel to anybody with a functioning brain. You cannot own a thought, or data, or bits or bytes, and much of the software you will no doubt use to create your premium software was made with this philosophy.

If you want to solicit donations that's very cool and there are people who will donate to you. But any attempt to abridge access to code without mandatory payment is not only ridiculous but purely unethical. (and no, I don't care how many HN points I lose by saying this)

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

5 at most

You can ethically sell a service with your libre software.
You're literally against people making a living developing software for Linux...
> 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?

(comment deleted)
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

The only way is to force the users to pay via Web applications and SaaS services, really.
Artificial scarcity is an absurd and broken model. Please don't put yourself or your prospective users through that nonsense.
What artificial scarcity?
IOW, duh, FIRST solve the artificial scarcity of food and housing, THEN write free as in beer/license software. Stop doing it wrong.

/sarcasm

Aspiring to pay your bills by whatever legal means you deem appropriate is a fantastic model though, and I thoroughly commend OP for trying.
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.
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.

(comment deleted)
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.
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.

> 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)
The snap store was specifically designed for commercial use cases, IIRC
Maybe sell binaries for popular distribution.
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.

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.
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.

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.

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.
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.

Sell customer support and then get bought by IBM.
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.
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.