Ask HN: Anyone making a living building desktop applications?
I did ask the same question in 2016 [1] and got some really interesting answers.
I'm still chasing the dream of having a side-business and earning some side money, but with web apps it means mostly SaaS. Personally I hate rent-seeking behaviors (I'm not alone, it seems - "Tell HN: A Conversation Needs to Be Had over Subscription Software" [2]), so I'm trying to know what people are doing regarding desktop apps.
Are people still building desktop apps? More specifically, can you make a living (or earn some side money) in 2022 by selling a desktop app? Please share it with us, or are we doomed to build web apps and SaaS for the foreseeable future?
360 comments
[ 4.0 ms ] story [ 338 ms ] threadWhat kind of niches would that be, beside audio/video and other cpu intensive things?
You can also touch a lot of files on a webserver, although it would be a pain to upload them.
That's a wide range of users, so I don't have a specific product idea, but seems like some kind of opportunity may exist in this niche.
(If I had a product idea, I'd probably try making it myself — native desktop apps are much more fun to make than web.)
This has also been my experience, and I am curious what the reasons are. Does it have to do with the quality of the end result, or the process of development?
1. CRM - I don't want to store private customer data on 3rd party servers.
2. Budgeting app - Used to use Quicken but it moved to web and I switched to Mint because it is free. I tried some free opensource apps but experience was not smooth. So I am sticking with Mint for now.
3. Trade analysis apps - Sites like TradingView or TraderVue are great but I don't want to put too much effort in there. I rather have my trading data stored locally on my machine. As a programmer, I export CSVs and run them in local Jupyter notebooks but I think a more user friendly version should be high in demand.
Edit: one example would be a file backup system. There's no way you want to make the user manually select and upload every single file on the HD for something like that, and (for obvious reasons) there's no way for a web app to scan the disk and read arbitrary files.
Hmm, I don't follow — Headless Chrome is Chrome without the GUI. That doesn't sound so useful as a desktop app.
It being desktop-first makes it as easy to try out in a corporate environment as Sublime. The data never leaves your machine. Desktop-first is a big deal in devtools for this reason.
[0] https://github.com/multiprocessio/datastation
https://openrefine.org/
Not a single company took me up on my offer. After hearing I would charge extra for the questionaire, they always just bought the standard license and filling the questionaire suddenly wasn't required any more.
[0] https://www.inkdrop.app
[1] https://www.youtube.com/c/devaslife
Also needs to pay for the cloud servers running it lol.
I don't see anything wrong with this. Users buy software because it solves their current problem now, rather than a possible feature in the future. The revenue stream is definitely more reliable though. Just that as a user I wouldn't mind if the software I bought today stays that way forever, and as a developer I wouldn't mind developing software to completion then leaving it as that.
Go onto any software listing site (eg. Softpedia or AlternativeTo), pick a not-a-brandname commercial product and chances are that it will be a single-person project. From things that are really well-polished and look like a team effort to pimped-up crappy weekend projects. Lots and lots are made and run by a single individual.
Whether they sell well is an altogether different question, but it's generally not hard to make several $k per month off a decently useful consumer desktop software. All depends on the size of the niche, the fit (read, specialization) of the product, its quality and the amount of marketing effort.
This business model is still often referred to as "shareware", so if you want to find communities of people that are involved in it, that'd be the keyword to search for.
An altogether different option is to pay 2x the commission and use "full-service" reseller frontends like Digital River, PayProGlobal, etc. These are referred to as "registrators" and they used to be useful, because getting a merchant account and processing cards was a royal pain the ass. But now there's Stripe, so virtually no value in them. In fact, they tend to make thing more difficult to the clients than needed to justify their own existence (like requiring phone numbers, calling customers back to "verify" purchases and other artificial b/s like that).
Re: piracy protection - wildly depends on whom you ask. There is a camp of people that put minimum effort (literally a a single "if" check in the code) and embrace having their stuff cracked and hacked. The logic is that this acts as extra marketing and helps converting pirates (lol). There are also people who use packaged solutions like VMprotect and (previously) Armadillo. This tends to nip piracy in a bud, but creates issues with antivirus false positives. It also makes the software heavier and more fragile. There's also a middle ground of custom protection schemes that, if deployed wisely, can create 100x more headaches to crackers vs the effort spent on coding them in. Not that hard to do, but these aren't drop-ins, obviously.
Also, closely related, is the question of how the licensing works. Previously, most of the shareware used completely offline licensing using "keys" that were either hardcoded into the program or verified algorithmically (read, with elaborate checksums and such). This caused an emergence of keygens and it also fed credit card fraud with people smash-n-grabbing keys in bulk and then published them for the street cred. Surprisingly, a lot of shareware still uses this method and they still bitch and moan about the consequences. The alternative, obviously, is to use online activation. That is, what is sold is an activation token that can be swapped for a machine-specific license, via an exchange with the licensing server. This nearly completely eliminates the CC fraud and it allows for finer control over licensing. There are some drop-in solutions for this, but all of them are really quite basic and almost universally suck. However, the good news is that is fairly simple to roll out your own online licensing scheme in a matter of few work-days (assuming you know a bit of web backend and frontend).
Also, it's worth checking with the accountants first before taking on a role of a tax collector. When yet another random country demands a sales tax on purchases made by its citizens, it's just a spherical pony in a vacuum. Best to first check if their demands have merit.
if so, that is a recent development.
I wouldn't say all of them suck. But that's because I built one [0] for the sole reason that, back in 2016, I too thought all of other ones sucked.
[0]: https://keygen.sh/build-vs-buy/
This is inaccurate and misleading.
The calculator assumes that there's no cost to integrating with your system. It also assumes that the developer is salaried, which is almost never the case when it's a single-person shop.
The amount of effort required to learn your system, to do the integration, to test and to support it is absolutely on par with the time it would take to make a simple licensing framework from scratch. Except that the latter doesn't create an external dependency for a critical part of customers' experience.
This is all from a perspective of desktop software vendor. Perhaps things are different when your service is used for WP plug-ins or web apps, but for desktop apps - IMNSHO - the value of it is fairly low.
Thanks for the feedback! And that’s correct, but I think you misunderstand the calculator. This is for the cost of the licensing server alone, not the integration into a software application, which will of course cost additional time/money either way. Regardless, the real build vs buy savings in almost any third-party are in often forgotten long-term maintenance costs.
> It also assumes that the developer is salaried, which is almost never the case when it's a single-person shop.
If you don’t have a salaried developer, or at least have an average spend per-year to be able to input (even if it’s yourself at an hourly rate), then you likely aren’t my target market. And that’s totally fine. One-person shops like to unnecessarily build things in-house because they typically value their time at near-zero. They’ll spend weeks building something they could have paid $19/mo for. (Which is fine -- they churn more often and require more support, in my experience.)
> The amount of effort required to learn your system, to do the integration, to test and to support it is absolutely on par with the time it would take to make a simple licensing framework from scratch.
Keyword here would be “simple.” In my experience from running the business for nearly 6 years, most licensing systems aren’t simple. And if they are, they likely don’t even need a licensing server in the first place -- just do signed license keys.
I have testimonial after testimonial of the opposite conclusion -- that the API saved significant time and money -- especially for the long tail, years after integration.
Unless your licensing system is incredibly simple (and in my experience they rarely are), there’s money to be saved in not building and maintaining it in-house.
Every iota of effort spent going after pirates is effort not going into servicing existing customers or getting new ones.
PS. Having cracked versions floating around affects SEO ranking of the master website, it affects sales and overall perrception of the product and, as importantly, it also hits support with a lot of bogus bullshit from people that aren't even customers. So for every iota one may "save" by not adding protection, they would spend multiple iotas dealing with the consequences.
I try my best to make it "worth it" to purchase the app. Label LIVE is a super- boring business label printer app so it takes a "special" person to 1) need the app and then 2) decide that they'd save more money by cracking it than just paying for it. If I 10x my pricing (as my competition does), then I would fully expect users would find it worthwhile to crack and distribute.
Here are the ones that I use most and the companies that develop them:
Fission; Audio Hijack (Rogue Amoeba): https://www.rogueamoeba.com
Amadeus Pro (HairerSoft): https://www.hairersoft.com/index.html
Transmit (Panic): https://panic.com
Jedit Ω (Artman 21): http://www.artman21.com/en/
BBEdit (Bare Bones): https://www.barebones.com
GraphicConverter (Lemke Software): https://www.lemkesoft.de/
I only run macOS on my laptop and yet it's where I've spent the most money on various utilities.
MacOS-only software I've paid for: Bartender, BetterTouchTool, Forklift, SoundSource, Pixelmator Pro, iStat Menus, Nova, Alfred, DaisyDisk, and some other things I'm sure I'm forgetting.
But as you can see later on in the entry, StackOverflow's survey shows the numbers as being much closer. So your target audience matters. I'd expect that software developers aren't the only set of users where the ratio is far off of the average.
Lots of single person indie success stories there, such as "Papers please" or "Stardew valley".
Seminal example in this genre is probably Minecraft (which of course expanded to a team before acquisition).
Quickbooks for that matter as well.
Small question: how do your users find your product?
After a while, I just stopped all marketing efforts and now it's all just word of mouth/google search.
Best part: it also shows battery health really well with discharge charts and can track multiple batteries (if you still have a laptop with which you can swap...).
> removed the feature the allowed for toolbars
Should be that, I presume.
[0] https://www.budgetwithbuckets.com
magnificent! I hate reconciling my amazon -- and recently walmart grocery pickup -- purchases for this reason.
What am I suppose to use when I’m out and about or traveling? I was on vacation when I got paid in December. The only thing I had on me was my phone.
And yes, it is almost always easier to punch in numbers on the desktop.
Outside of professional work, I’ve jumped right back in to Ham radio over the Corona times, there are lots of desktop applications in use there (DSP mainly) but usability and support for hardware (both devices, and platforms) is hit and miss and I have a few ideas for making my own versions as side projects. Several of these are paid - so do you have any hobbies or niche domains you’re knowledgeable about that you could explore?
Recut[2] is an app that basically does what Atomic Edits aimed to do, but actually succeeded. I think it's because it was a native Mac app which meant it had access to better libraries for editing videos. (That or I gave up too early on Atomic Edits.)
Orbital[3] is desktop app that allows you to search, filter, preview video files on your computer like YouTube. I posted on some subreddits and it had potential but I realized it wouldn't be enough to sustain me. It could've worked as a side-project (if I was working as a SWE) but being as my main source of income was from YouTube ad-revenue, it wasn't worth it.
VideoHubApp[4] is a desktop app that does what Orbital aimed to do and actually earned a couple thousand dollars. It was started a few years earlier and was built with a similar tech stack.
All that is to say, I made desktop apps that had potential, but didn't have the funds to see them to completion. Of course you could say it would be different if I had a SWE job + funds, but then I may not have had the time to learn React + Tailwind + Electron and complete these apps.
[0] https://github.com/SuboptimalEng/atomic-edits
[1] https://www.reddit.com/r/webdev/comments/ohbl6i/i_made_a_des...
[2] https://getrecut.com/
[3] https://github.com/SuboptimalEng/orbital
[4] https://videohubapp.com/en/
That's probably the path forward with the best chance of overall success.
https://www.lazarus-ide.org/
My perspective is Enterprise is hard to hit with SaaS. It's also hard to build an integrated (AD/Network/Data/Files) desktop solution. It still seems more viable to start with a standalone, offline, Desktop solution that individual enterprise employees might consider trying / e.g. something like an app that replaces excel with better efficiencies. Maybe while building some SaaS-like component (advanced processing in cloud, API integrations, etc) that still opens the door for non-enterprise users. Ultimately while building a portable/cots cloud based solution. Further letting you evaluate ways to pivot in either SaaS or COTs in the future.
Im still not confident that an MVP approach shouldn't just always accommodate seemless accessibility (SaaS) for a larger general market, and that I shouldn't discount enterprise requirements for non-corporate LAN user bases.
Wails because I imagine extensive Golang based services (preference/experience) in any cloud env. .NET would be my other approach for O365 based integrations.
Rust has something similar to wails, https://github.com/tauri-apps/tauri . Then there all the traditional native vs cross-platform methods.
No approach, or cross platform framework, really seem quite right. But I figure time and money would be the important factors in any serious avenue I want to take things.
This is currently my approach -- not making a living (yet hopefully) -- but will report back soon. I have a baddie of a productivity tool that can fragment features to a few pay per use web APIs that I'll package with a front end for non-enterprise.
A slight tangent: It's very, very challenging to enable collaboration in these types of environments. Magic Wormhole [0] has been an interesting solution I've wanted to integrate, but haven't yet.
[0] https://github.com/magic-wormhole/magic-wormhole
Was using Java Swing until very recently. Switched to Kotlin JS in browser, not sure it can count as desktop anymore.
I've been considering it for similar type of desktop app development, but haven't dug deeper yet. Mainly because I already have some experience with Rust and have been considering options in this space before venturing elsewhere.
https://loshadki.app/
Even if the company is planning to implement something web related in the near future, the business is on the desktop and there are no plans on taking it entirely to the web anytime soon. Mining companies prefer it that way, as internet connectivity is not something you can reliably find on site.
[1] https://iring.ca
It was a long way. I started in the Pro Audio niche and initially supported Windows, Linux, Mac. Over time, I learned the hard way that supporting Apple's constantly changing OS is very expensive, plus Mac users tend to act the most entitled when stuff doesn't look or feel like their native OS. And Linux just never sold a license, instead I got lots of Open Source bitching. So eventually, I dropped Linux and Mac support, doubled down on the new Windows APIs and then things got nicely profitable. Price is one-off $299 for the regular app kit with perpetual updates (so far). People use the apps for making movie sound effects.
I did not realize this was a mark of the student life. Who knew I was still a student at age 49?
I would hate that a stranger enters my house to clean, and I would hate it even more when I was not at home.
Separate store and fastspring.
the current problem for me with Microsoft fat client is there are too much options and no clear one that Microsoft will support long term.
Qt 5+ for anything with any level of complexity. Windows has already given up on 'native' UI.
JUCE for audio plugins.
Don't bother with all the 'modern' pretend-windows-is-a-touchscreen-os frameworks.
If pressed I would say WinForms is the most practical choice for most apps today - even though it sucks, even though it's ugly. It's actively worked on (unlike WPF) and it lets you use the latest .NET version.
WebView2 (better Electron) is probably where most Windows development is going in the future, the Windows team is investing a heck of a lot more in it than other technologies.
They deprecated .NET Native and C++/CX and are yet to provide any tooling that compares to them.
.NET Native is stuck in C# 7, while C++/CX got replaced by C++/WinRT with the argument that it is ISO C++ friendly, when in reality it offers the same tooling as using Visual C++ 6.0 with ATL back in the days before .NET came to be, but their developers are so stuck in COM pre-historic tooling that they don't acknowledge that.
Apparently WinUI 3.0 would be the future, with the merge WinRT and Win32, however issues pile up exponentially and even Windows 11 is making use of the deprecated UWP, as the team cannot keep up.
Since MAUI depends on WinUI 3.0, it is yet another reason why it keeps being postponed.
Windows on 2022 with Microsoft stacks MFC (yes really, much better than C++/WinRT), WinForms or WPF (eventually with C++ if required).
Otherwise Qt, Delphi or C++ Builder if enough budget, or PWAs if possible to do so.
Imgui and juce are great frameworks.
For side-business it'll be a lot tougher than it was when I started 30 years ago.