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.
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.
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.
§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.
> 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.
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.
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?
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.
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.
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.
This way you avoid being pirated too (large companies typically don't pirate).
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)
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.
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.
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.
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.
I'm not sure if it'd be big enough to get you doing it full time though.
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.
If your target audience is developers or corporate check this license and their parent project https://prosperitylicense.com/
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.
Somehow the availability ( I am in India) is just not there as of now.
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.
https://www.fossjobs.net/ https://github.com/fossjobs/fossjobs/wiki/resources
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.
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.
I’m a 20 year Linux user now and I haven’t met in real life anyone who acts differently as a Linux user.
The only software I have paid for on my Linux machines is IntelliJ.
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.
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)