Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Anyone making a living building desktop applications?
332 points by jventura on Jan 21, 2022 | hide | past | favorite | 350 comments
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?

[1] https://news.ycombinator.com/item?id=11658873

[2] https://news.ycombinator.com/item?id=30021404



I'm making Windows/.Net based app for managing queues - QueueExplorer. Started with MSMQ support back in 2005, now it supports Azure Service Bus, RabbitMQ and ActiveMQ. It's old fashioned perpetual licensing, so revenue is a rollercoaster. Because of that, it's emotional rollercoaster as well. Good thing is you get paid for full license at the time of purchase instead of collecting it in 10-20 months. Bad thing is every month starts at zero.

Although .Net went multiplatform years ago, my app relies on WinForms a lot so it's Win only, except through Wine. I would love to support Mac as well but the only realistic option looks to be Electron based, and it would be a significant step back for my Windows users. Maintaining two different GUIs looks like a problem for micro company.

The best thing about desktop software is it can't break for all the users at once like server-based app can. That gives some piece of mind when you're micropreneur. Sure, there are bugs, but they affect only users who downloaded buggy version. You can't crash all installed instances just like that.

The worst thing is, it's hard to ask for a subscription. Yes, I hate it as a user, but would love it as a business owner :)

https://www.cogin.com


You should just sell maintenance subscriptions / better support tiers - lots of software companies have been doing that for years. Perpetual license and if it breaks for someone using it at home they can go to the free support forums. Large company that needs it fixed in a super quick turnaround? Monthly fee for priority.


We do have a maintenance option, but we don't push it that hard and it doesn't bring in significant revenue. This could be handled much better I'm sure.

We also have major upgrades which do bring in some more cash since they're more expensive and more users buy them. But it's every 5-6 years. And it's still significantly lower than regular new licenses.

I'm thinking about adding a Saas "Team" edition, which would offer centralized management of users, connections they use, permissions, with some auditing etc. First problem is we would have to store some sensitive data (connections) which gives me a security scare. Second problem is we'll introduce central point of failure which gives me another kind of scare. And very soon we'd have different versions of client software running on end users machines which should all work correctly with a server. That's a third scare, a versioning one.


Do some type of integration with Azure AD so you do not have to worry about the security or any of that? Plus clients will be familiar with it and could use existing users in their infrastructure.


That's a good suggestion. But in reality we'd have to support both Azure AD and our own storage for users who are not using Azure AD. And possibly even on-premise version, which is additional complication.

It's beginning to look clear why it's an idea from few years ago but still not implemented.


I assumed with windows you were already integrating with on premise AD for user management which syncs nicely with Azure

Azure AD I meant just for user / rights management - not full azure for actual storage and everything.


I am looking forward for the upcoming release of WiseJ 3.

WiseJ is a drop-in replacement for WinForms apps, to make those run in a browser.

The WiseJ 2.5 is yet on .NET 4.8, but the new WiseJ 3, planned for March, is running on .NET Core.

The key features for me are: (1) all the wiring is hidden, so no need do not deal with Javascript. All processing is done in server. (2) Refreshing the browser by pressing F5 keeps user's session. (3) Background tasks work seamlessly with UI updates. (4) Can use System.Drawing.

It is a paid library, but very reasonable price.


> It is a paid library, but very reasonable price.

That's not a bad thing. My company pays quite a bit of money for various libraries and if we notice a bug in any of them, we report it and it's usually fixed within 4-6 weeks in a new release.

There is no discussion with 5 people chiming in and you don't need to follow up constantly. Report it once, answer maybe one or two questions on how to reproduce it, and even very complex bugs will be gone.

I know that there are a lot of well maintained free projects but being able to write a report and to be guaranteed an answer back on the very next day is very calming when you have customers waiting.


Have you looked into .NET MAUI yet? I'm cautiously optimistic, but haven't dug into it. Should be releasing Q2 this year.

https://github.com/dotnet/maui


MAUI doesn't seem to have Linux support for now. There are some community efforts but nothing here yet. That pretty much kills multiplatform aspect. At least for category of server management tools where my product belongs. Ok, Win + Mac is better than Win only, but if I have to redo entire app it should better support Linux as well.

Also, it's hard to bet on a new MS GUI framework, when they released and abandoned several in the last decade. Will it be supported in 5 years as a minimum? Yes, Winforms looks outdated, but it still builds and works as it did back in 2005.

One more thing, I'm not using vanilla Winforms but also excellent DevExpress controls. For example Winforms has a grid, but DevExpress grid is highly customizable, works ok with 100k rows, has filtering, sorting, etc. It's not only about base GUI framework, it's also about entire ecosystem of GUI controls. And maturity of these controls. E.g. Devexpress has MAUI grid, but I don't expect is to be as mature as winforms one.

I'm not saying that MAUI couldn't be useful for some cases. Even many cases. It's just not yet ready for my kind of software.


I built an app on Silverlight that I sold for Windows and Mac and was making pretty decent money, until MS ended support. I looked into QT as a replacement, but couldn't get a replacement app finished in time. I will never trust MS multi-platform gui again.


Yeah dropping Silverlight support for Mac was a shame, Microsoft finally had a good multiplatform story. They could have keep the out-of-browser mode and market it as desktop dev framework instead of browser plugin.

The biggest irony is that this tech would have allowed them to open a store on Windows 7, 10 and Mac which could have been way more popular due to market share than both the Windows and Mac app stores.


I looked into .Net GUIs about a year ago and it seemed like Avalonia and Project Uno were the most interesting contenders, with Uno getting the edge for me because it had a reasonable looking web deployment story (which I suppose doesn't matter in this case). My info may be out-of-date though, and I'd be curious to hear your thoughts on those two, if you've looked at them.


I did take a look, but at that time they didn't have what QueueExplorer needs. I wrote in another post that we use relatively complex and powerful grid component. Grid is core component in this case and can't be a basic one.

However if you don't have such specific requirements, Avalonia or Uno might work.


I gave Flutter another try today and was surprised to see it now builds native Windows applications in two flavors, standard and UWP. They don't recommend shipping anything with it yet, but it looks like a good path.


Any plans for Kafka support? I was frankly a bit shocked when Conduktor raised investment:

https://venturebeat.com/2021/11/22/conduktor-which-brings-a-...

If anything, it's a testament to what an absolute pain it is to develop on existing message queue/event streaming platforms, so it's clearly a valid niche.


I would love to support Kafka, and even made a simple prototype. However, hit a brickwall when discovered that .Net client (by Confluent, other clients seem to be deprecated) does not have all the features the Java one has. For instance there's no way to get current consumer offsets and I think's something that should be available in a management app.


If you really want to support Kafka, I think there are options. Besides the obvious option of forking the .NET client to add these missing features, you could also write some kind of "plug-in" in Java or Go or some other language with a fully featured client library, and communicate with it over some type of local RPC from your main application to query against Kafka. Whether it is technically feasible or not, it may not make business sense for you, which is fine, just interesting to think about the options.

I'm slightly surprised that the .NET client isn't fully featured, but I've never tried to use Kafka from a .NET language before.


I suppose .Net client has everything that typical Kafka app needs. Just not everything that management app would need.

Btw. that's also the problem with all other queuing systems we support. Their APIs are made to support Send/Receive scenarios, what these systems are built for in the first place. They rarely support "delete message in the middle of the queue", and never "replace message" or "insert message at arbitrary position". I guess API authors are worried that such functionality would lead to apps mistreating queues as a kind database, which is not intended use case.

However that sort of functionality is often needed when you're troubleshooting and fixing a problem. It's not like everything always just works. In reality things go wrong, message format changes, invalid data goes into queue, etc. And then we have to abuse existing API and/or give only subset of useful features to users.

About combining Java or something else - that might be possible from technical point of view, but remember this is a desktop app which ships as an installer. Not an environment you'd set up on the server. We would have to include another runtime and make sure it works correctly in different scenarios on end-user machines.


It’s been quite a number of years ago, so I don’t know the current state, but back then we used IKVM to run some finance Java libs in .NET applications.

Worked like a charm.

Basically, it is a JVM implemented in .NET so you can easily interop to the missing management APIs from the Java client and there is no extra runtime install to worry about or calling out of process.

Might be worth a try.


Converted a simple WinForms app for scanning and reordering medications using Xamarin Mac and storyboards. It was relatively painless.


Our company sells HW and SW for the dental sector.

We have a desktop app that processes DICOM data to do implant treatment planning (where to place an implant in the patient jaw). Output is a STL file to print a drill guide for the oral surgeon to perform a guided surgery.

Our desktop scanners for dental labs and our intra-oral scanners for dentists generate 3D meshes of the patients oral situation.

Those meshes are the input data for the CAD/CAM Software my team builds. It is a desktop app for the digital design of dental restorations. The GUI is in javaFX and 3D visualization is done with OpenGL 4.5.

Once the restorative Design is done, that app can generate many different output formats. Labs will feed the design files their local milling machine or 3D printer. Dentists can send it to centralized milling facilities of their choice to produce the crown or bridge or what have you.

Some impressions can be seen here:

https://youtu.be/5THQMr5SAH0


Not sure if it was your specific software, but I recently filmed a promo for a local dentist who was demonstrating this exact tech and I was blown away by how quick and accurate those scanner sticks are and how well the software stitched it in real time. How the hell can you scan something as small, wet and soft as the inside of a person's mouth and stitch it all perfectly? Seems like the absolute worst environment for scanning


It's great to hear that this little piece of technology inspired amazement. It is quite something.

Your observations is spot on:

Indeed, the environment is far from ideal. 2-3 years ago dentists had to apply a powder onto the patients teeth to make just the scan of the teeth work. Now the software has matured to work powderless. The scan has to work for a wide variety of surfaces and vis-a-vis refractive indices like teeth, metal implants, ceramic or gold inlays, gingiva, orthodontic engagers. The very high end models even detect tooth decay / caries.

The stitching is another challenge. Again, in the past the scanner would loose his reference on the mouth and it was fiddly to get it back to continue from the last scanned part. The team working on this was brilliant to overcome this problem and now it is a smooth experience

Finally, accuracy is something all devices on the market having a hard time with. They are operating on the limit of what is possible. Small partial scans are no problem. But when you scan a full arch, you must ensure the deviation does not exceed 30-50 microns over that full arch. Otherwise, if the dentist plans to do a big bridge that spans several teeth a lower accuracy will lead to miniscule deviations and twists in the designed and later produced bridge, that the patient will recognize it and feels that it "just does not fit right".

Our mouth is super sensitive in this regard because of the high number of nerves/sensors. Our tongue operates like a magnifying glass. When you have a small hair in your mouth or between your teeth you will feel that right away.


> I was blown away by how quick and accurate those scanner sticks are

Damn, you weren't kidding - https://www.youtube.com/watch?v=AA4IWd3Svm0

Very impressive indeed. Looks effortless and natural, but I'm sure that the processing engine is not exactly trivial.


WOW! Was just reading along, idle on a slow day and hit this.

The processing on that to achieve such a low latency is amazing, flat out.

Fun watch.


neat! I recently had my teeth scanned for a night orthotic and decided that I needed a 3D print of my teeth. It was challenging walking the office staff how to get me the STL but once I did they were amazed when I walked in with a print of my teeth! (I don't really know why they were amazed, I mean, that's what the equipment was purchased to do was make scans of teeth. But their reaction was noteworthy!)


Yeah. 3D printers still have not entered the industry to their full extend. It's mostly dental labs that use them. Here again you need the right materials and precision to use them as physical control models when doing the aesthetic restoration and planning. It is still very common that dentists take an impression (very you bite that gummy mass). It gets sent to the labs. The labs then create a plaster model from that to have a physical control model. They also use one of the above mentioned desktop 3D scanners to create the digital model used in the CAD application.


wow. I just had a scan done a few weeks for precisely this sort of thing (drill guide), and I was really impressed by the software. But I was also completely puzzled by what the actual data input (from the wand-like thing) consists of?

Any chance you could enlighten me?

p.s. the drill guide arrived, the implants go in next week!


So our implant planning software coDiagnostiX actually used DICOM data coming from a CT-scan. You need the full bone/jaw information to make sure that the implant goes into a place where the bone is wide enough, had the right density and that you do not hit a nerve. Those are the clinical requirements. On top of that, the placement must allow for a proper aesthetic restoration design by the lab technician, too.

For the latter you then also need the intra-oral scan. The output of the IO scanner is a simple (but massive) 3D point cloud. The software then is meshing those points on the fly. Using the color information from the IO scanners camera, shaders are added to generate the right texture for teeth, gingiva, etc.

We have a module in the CAD Software that allows to Integrate the surgical and prosthetic workflows through real-time case data sharing between coDiagnostiX and DWOS CAD. The Real-time (or asynchronous) connectivity between lab technicians and implant-placing dentists enables better prosthetically-driven implant planning and immediate provisional design.

On a personal note, don't be afraid of the procedure. With those drill guides and today's planning solutions we made leaps in implantology. In the beginning the surgeons did it by hand and feeling. I shudder at the thought.


Thanks for the explanation. IIUC, the "wand" object that was used to generate data inside my mouth is not using any absolute location data, it's just scanning whatever it can and then the point meshing Just Works (TM) ? It seems quite remarkable - the wand is essentially being waved around completely freely, and I was amazed that you could build a model from the data generated in that way.


My father is a dental technician and has a Dental Wings scanner. What a small world.


How cool. He should try the new "Easy" CAD software we shipped with our latest major release in December. It is a breath of fresh air and much more streamlined & intuitive workflows compared to our classic CAD Software he is used to.

Reading your comment made me really happy. As a dev I am always excited to have contact with our customers. Other hate it, but I love giving 3rd level support.


Hello. So I'm the dad with the Dental Wings scanner, which I purchased from Straumann about 7 years ago. I'm using their version of the Dental Wings software. Would this be the same as the software that you're referring to, or is the Straumann version different? I am a dental technician, and I work with general dentists, so I don't take advantage of a lot of the software that's available to me. I do crowns, bridges, and implants mainly. Most of the general dentists do take impressions, and send those along, which I pour in gypsum, and scan in the scanner. I do have one dentist that I do work for that uses an intraoral scanner. For those cases I import the STL's from the Trios portal. This is cool to be chatting with a dev. What else can you tell me about it?


Hi there. Thanks for being a loyal customer.

Yes, your "Cares Visual" Straumann software is just a branded version of our Dental Wings one. In terms of functionality there is no difference, but I think with your version you got by default access to the vast Straumann product portfolio (hundred of implant kits and materials), plus their validated (FDA approved) workflow and access to their centralized milling facilities.

> dont take advantage of a lot of the software that's available to me. I do crowns, bridges, and implants mainly.

Yes Cares Visual is very flexible and offers many different ways to do restorations. It can be daunting at times :).

> Most of the general dentists do take impressions, and send those along, which I pour in gypsum, and scan in the scanner. I do have one dentist that I do work for that uses an intraoral scanner.

That is what we see in Europe as well (I assume you are US based). Dentists are more conservative when it comes to switching to digital dentistry. But I think it is understandable. Having their patients safety in mind, they want to be sure before applying completely new technology. Your dentists uses a Trios IO scanner. Since Care Visual is an open system we can deal with input from many 3rd party devices (i.e. non Straumann).

What topics would interest you? Or do you have any feedback in particular? I am happy to take this conversation elsewhere. See my email in my profile.


Thanks so much! I will definitely do that! I have a couple of ideas that would really speed some things up when it comes to case design.


My uncle founded Jenmar, heard of the company and software?


Sorry, no I did not, had to look it up. 30 years in the business is mighty impressive. The competition in the dental market is extrem, so that's a huge success your father build!!

We had a team that also build Lab management software but overtime we painfully became aware that an integrated billing service is a maintenance nightmare with yearly changes to tax laws, the myriad of different health care providers/insurance companies ever changing what treatments they subsidize to which extend on an monthly or even weekly basis. Multiply that with all the different countries we operate in, it became unsustainable.

So again, kudos to your father to prevail in this space.


Thanks, yeah I think it’s quite a niche business. I don’t think he was the biggest player, but top 3 perhaps. But yeah not a lot of players in that exact category.


This is my 3rd (or is it 4th?) year of developing and selling Label LIVE, an electron app for designing and printing labels. Originally it only worked with USB thermal printers, but over the last few years it's grown into a multi-function image-rendering pipeline that integrates data import (via spreadsheet, CSV or API) with barcodes, text, image output. My app revenue eclipsed my iOS/NodeJS consulting in 2021 and I hope to double revenue in 2022. Read more at https://label.live/features.

The tech stack for this app is really interesting (to me at least, natch). Lots of native node modules that need finesse on both macOS and Windows. I don't yet support Linux because out of thousands of users, only 2 people have emailed about Linux support (probably both from HN!).

I really love building Electron apps. It's a total joy bringing something (albeit "inefficiently" wrt memory and "native" qualities) like this to market for a niche that's otherwise a dumpster fire of old and clunky 1980s-era Windows-only software.

As for licensing, Label LIVE is licensed per computer. I wrote a custom license implementation leveraging JWT. The JWT is signed by my license server and the app verifies the signature and that the contents match the "fingerprint" of the computer being licensed, expiration, etc.


> I don't yet support Linux because out of thousands of users, only 2 people have emailed about Linux support (probably both from HN!).

I'm a little surprised to read this from an Electron dev. I remember reading old forum posts about how the Spotify port for Linux was arranged by two devs who met after work for a few hours and got it working well enough that Spotify let them release it as an unsupported client. There was one or two issues that had to do with importing local music, but besides that it ran perfectly fine. You're of course welcome to do whatever you want, but if your runtime is essentially a web browser, I doubt there's going to be much trouble getting it to work on Linux. But what do I know, I don't make a living off of printing labels...

> It's a total joy bringing something like this to market for a niche that's otherwise a dumpster fire of old and clunky 1980s-era Windows-only software.

Here's my grumpy old man take: I kinda prefer the clunky Delphi forms of yesteryear. No, they weren't very pretty, but they were stable and performant enough that if you bought a license, you could guarantee that it would run forever. There was a special kind of feeling of ownership with that software, because it really felt like it was tangible and "yours". I don't think any Electron app has ever made me feel that way; at best it's a begrudging relationship with software I need for work, at worst it's one update away from being changed enough that I want the old version back. Again, take this with a grain of salt, I don't know your heuristics here.


I am definitely part grumpy old neck-beard, which is why I offer one-time licenses and an experience that lets a user run 100% offline/air-gapped. You can register and license a computer that is only accessible via USB thumb-drive. If nothing changes on that computer, then the app should continue to run "forever."

Second, auto-update is disabled by default because I don't want a dumb bug on my side to break someone's "it just works" printing system.


Back in the day I did not autostart the installer when someone put a cd in, because that always pissed me off. A lot of emails on that one!


> I remember reading old forum posts about how the Spotify port for Linux was arranged by two devs who met after work for a few hours and got it working well enough that Spotify let them release it as an unsupported client.

IIRC, Spotify "unofficial-but-official" client largely predates the Electron version and this story is from the Qt era of Spotify (which was wonderfully light and fast).


I believe it for an app that's 100% hitting remote APIs and playing sound. In my case I'm highly dependent on the host OS for about a half-dozen native modules that each have their own ultra-finicky native build environments.


What has been the biggest technical challenge in developing the Electron app? You said you had to finesse some nodejs modules. Can you maybe elaborate. Just curious where the mudballs are for something like this.


Supporting USB enumeration and reads/writes to arbitrary endpoints on windows took an act of god, maybe 200-300 hours of work to get it working similar to node-usb (libusb) on macOS (which maybe only took 100 hours). I’m probably underestimating hours by a factor of 2 or 3. Early pandemic time/math is fuzzy.

Managing 10+ levels of JS promise chains can be a chore if not architected and named properly. Or worse, when you write a feature that’s close to the user and realize it requires asynch all the way back up through 10+ sync calls so now it’s refactoring across 30 files and you forget one edge case that doesn’t resolve/throw and it takes days to track it down. Normal solo project problems.

Integrating fabricJS with a custom wasm module to dither images. That was a 10x speed improvement but took a few hundred hours.

Early on I chose react/flow/redux/immutable/semantic-UI as my front-end “stack” and it’s been mostly good to me. Of course, I wish my codebase was all perfect typescript but eventually I’ll get there.

The node ABI changes over the years has really stressed me out. It seems like it breaks all the native code every 3 months. Ugh!

Customer support has been delightful. Out of a few thousand emails only 2 or 3 have been awful. Sometimes I’ll get an email at 2pm on a Sunday saying “I have to print 5,000 labels by Monday morning or else I’m fired!” and we are always successful. That feels good. The toll free number on the website rings my cell and sometimes I wake up to missed calls from Nigeria or UAE and I think that’s pretty special. Call volume has not been overwhelming. Thank god.

Marketing is a huge chore and I mostly disdain it.


Looks quite cool. Sadly no Linux support, but I get why (got to build a printing library for Brother p-touch once).

However, I was about 5 minutes on your site and could not find a list of compatible printers. Where did you hide it :) ?


Sorry, it's right here: https://label.live/printers


It's really hard to find on an otherwise lovely site. I had the same issue as the poster above you.

Maybe you could have a list of recommended printers too?

Looks like a great app though - I have a forthcoming need to print a lot of inventory labels and I think your app would be great for that.


Are you writing drivers for all these printers? Will the operating system printer drivers not suffice?


I’m generally writing drivers for certain USB VIDs (vendors) that all speak the same “language” e.g. Zebra (ZPL), DYMO, Brother, etc. Often their are edge cases for individual USB PIDs (products), and even more granularity based on device status responses e.g. cutter, firmwares, etc.

So why not use the device driver? For one, they are often terrible experiences, especially Zebra on macOS, let alone other obscure models with zero Mac support. Another is printer drivers are almost exclusively tailored for large paper sizes, don’t give the user fine control over orientation, often auto-scale and hijack all these settings to best fit, which then destroys any attempt at fidelity with the intended output DPI which is often critical for matching with the smallest feature of a barcode. It’s tough to explain but in short, if your smallest barcode’s smallest feature is one dot width, then the next size larger must be double the barcode size because you must double the smallest width to keep the same relative size to ensure scanability. It comes down to “don’t dither barcodes” and all sorts of enforcement can happen if the app controls exactly how these are represented to the printer. No guesswork allowed.

All this to say: the printer expects to be told exactly what to do, but the driver plays loose and fast.

Eventually, after only focusing on thermal printers, a few years into development I added the ability to send perfectly sized PDFs to print queues effectively allowing access to any printer with a system driver (inkjet and laser). You can easily test “both ways” and see what you prefer. Using the in-app “driver” has so many advantages. You can adjust most print settings and they get saved for each design vs externally. You can buy a new Mac or PC and plug-in a supported thermal printer and it’ll just work without any drivers. It’s really nice UX in an otherwise very hostile environment.

TLDR: I’m not writing inkjet/laser drivers, only thermal, and only when enough users request explicit support because of problems they are facing (above).


I thought it might be something like that. I started my career writing label printing software but that was in the days before Windows/macOS or even Zebra printers.


This is really cool! I'm working on an asset tracking application right now (https://www.assetbots.com/), and generating labels are a big part of the workflow. My roadmap calls for simply generating Avery sheets.

But it would be AWESOME if I could let a user click a button and send them to a labellive:// URL and have it just work. I'll explore a little and see if there's a mom-tested way to make this usable.

Again, very cool app!


Label printing is still a world of hurt. My hope is to make it incrementally better, a smaller dumpster-fire, if you will.

I definitely have users triggering labellive:// integrations. The nice thing about the URI is it automatically launches the app if it isn't open - which is not true of HTTP integrations. The downside is it can be slower, especially on windows. Been there, done that. Maybe there's a workaround because Windows optimizations like this are a black box/art.

The other challenge is going to be referencing a standard design. Today, the integrations reference an absolute path or a "pinned" design file. I've had a few subtle requests to allow pulling down a standard "reference" design from the cloud (that you host for your users), and the app will cache the design based on a computed hash that you include in the URI. If your design changes, update the hash, Label LIVE will pull the update on the next invocation.

There's a lot of fun room to play with this. Let me know if you'd like to team up by emailing help @ label dot live. Now that I've got a fairly sturdy base of features my 2022 focus is to really hit and deliver on the potential for integrations like this.


I definitely will. I'm adding an issue to my roadmap right now. This would be a no-brainer add-on for some common use cases.


> I don't yet support Linux because out of thousands of users, only 2 people have emailed about Linux support (probably both from HN!).

That's certainly not the trend. Evernote has even released a Linux app after all these years. And for good reason - the Chromebook market. Hey is another.


AFAIK, there is no support for electron apps on chromeOS.


I installed beekeeper[1], an electron AppImage, this afternoon on a 11th gen Acer spin 713 chromebook. You just need to have linux support enabled in the Dev settings. Only newer, higher end chromebooks have the linux support feature. I prefer dbeaver, but there appears to be some kind of GTK dpi scaling issue with it.

1.https://www.beekeeperstudio.io/


Does it definitely not 'just work' on Linux, and the only people to email were those who saw 'on Mac & Windows' without realising it was Electron?


It's more than just USB, but it's the first that comes to mind. Label LIVE has built-in drivers that talk directly to USB hardware (thermal label printers). The actual "label printer driver" part (talking ZPL, etc) is cross-platform, but the middleware of handling the USB stack has many edge cases and hugely divergent implementations that wounded me greatly (since recovered, thanks!). On top of USB you have "system printer" queue support, local font support, fingerprinting the system for licensing, lib FTDI for weight scale integration, fabric JS w/ all the hidden beasts of WebGL, WASM builds for higher performance dithering, different sandbox requirements, app signing, app packaging... and those are just off the top of my head. There are probably a dozen more things I'm forgetting that would just wreck me if I wasn't mentally prepared enough.


Invalid question. Talking to hardware devices is OS based, it can't work accidentally.


'Invalid question'? ...

Electron abstracts plenty else that's 'OS based', for all I know/knew it has/had a printer API.

Cross-platform apps are what it's about; it wouldn't be accidental. There are plenty of Electron apps that work and are packaged by third parties for Linux that only advertise (by the first party) Mac & Windows support. Spotify I think, for example.


Does it work with the tiny Dymo printers?


Which models, specifically? Tape are less supported by the roll-based models. However, Label LIVE can submit PDF-based jobs to any printer installed with a driver. So it might work if the manufacturer drivers work as one would expect (hint: they usually don’t… :()


I have a Dymo LabelWriter 450. Gonna start looking into it myself as well


Should work great. It’s a very popular printer with my users.


Bought it mainly for USPS labels but this looks cool!


I wrote the original Dymo drivers for cups. They are now completely rewritten and a ppd iirc.


Yes and no. I'm an employee so it doesn't really matter, but my side-project desktop apps pay well enough that I could live off them if I go for a student lifestyle (no pricey events, no restaurants, cooking yourself, cleaning yourself).

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.


cleaning yourself

I did not realize this was a mark of the student life. Who knew I was still a student at age 49?


I, too, am a couple of pay raises away from paying someone else to clean me


TBH this is not a pay issue, no matter whether I can afford it.

I would hate that a stranger enters my house to clean, and I would hate it even more when I was not at home.


The more I look at the parent's list of "student" activities, the more I realize I am a "student" in every way, despite my "lead engineer" title!


Had to smile


Apple like to nuke their developer ecosystem from orbit on a regular basis. It is quite tiresome. Qt protects me from it to some extent, but cross platform frameworks have their own issues.


As a developer mainly on Mac, which windows APIs are you referring to that are new, and how do you normally distribute your app, is it through a Windows store or independently?


Dxva, the windows dx12 multimedia API

Separate store and fastspring.


Thanks. What Windows GUI framework do you recommend for someone coming from mac? Or is there only one main framework?


In the audio world, everyone swears by JUCE.


what Microsoft fat client technology are you using?

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.


We're talking Microsoft here, they will probably be patching any crap they put out 10 years from now to maintain some enterprise app nobody knows how to update. Even when they gave up on Silverlight it was supported for almost 10 years afterwards.


Yea, I develop a hobby project targeting desktop Mac (Objective C GUI, C++ business logic) and I’m not sure what Windows technology I should use should I ever decide to port to Windows. There are so many and they are all in various stages of unsupported. C#? C++? .NET? Win32? MFC? WPF? XAML? WinForms? UWP? Maybe just give up on trying to read the future and use Qt. Fucking madness!


Beside all the sibling comments, avoid WinUI, regardless of 2.x or 3.x variants.

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.


I faced that question over a decade ago, and after looking around at my options, I went with Qt. No regrets. Sure, it had its flaws, and sometimes the "not-quite-nativeness" shows through, but it worked pretty well and gave me support for all 3 major desktop systems. And although someone else has long since taken over maintenance of the application in question, it's still going strong (and still built with Qt).


C# 2.0 WinForms, or Win32, for simple run-anywhere tools with no dependencies.

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.


It's a mess.

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.


C# on .net 6.0 with either WinForms or WPF.


Do not use WPF. WPF is dead. If you don't want to use WinUI, go with WinForms.


WPF isn't dead, it's done.


It's never looked finished to me, it was abandoned at birth.


Directx for everything to make things fast and to get nvenc hardware encoding.

Imgui and juce are great frameworks.


I make video games like this one [0] or this one [1]. It's pretty simple, you can buy the game and then download and play it. Are games 'desktop apps'? It's not the language I would normally use but I think it applies.

Having been out of the web app development bubble for about seven years now, there's whole industries that work entirely in the pay-for-it-and-then-download model, and while games-as-a-service is more popular now than ever before there's still plenty of the old-school way of doing things going on.

I really like the simplicity. You can buy the thing, maybe from Steam or maybe from a DRM-free store like Humble, download it, play it. You can get a refund if you don't like it, or buy another copy and gift it to a friend if you do.

[0] - https://store.steampowered.com/app/386900/The_Cat_Machine/

[1] - https://store.steampowered.com/app/654960/The_Eldritch_Zooke...


Congrats on releasing games on Steam! I'd like at some point quit my job and run a small game studio. I have so many questions, mostly out of curiosity. If you could answer the ones you're comfortable with, I'd appreciate it:

* What's your tech stack for the games? Are you using an engine?

* Who made the art? If you did it yourself, what software are you using?

* How was the process for releasing your game on Steam? Did you have to do a lot of marketing to get users to greenlight your project?

* How did you make the trailer for the Eldritch Zookeeper? If you didn't do the voice, how did you hire the voice person?

* The Cat Machine has 107 reviews on Steam. How many users does that translate to?

* Does your current employer have a clause in the contract discussing IP made on your own time? Did you have to get an exception from your current employer to be able to release games on Steam?

Thanks in advance.


Mostly Unity and C#, I still use Python for bits and pieces (see my other comment). I made and make all the art myself, just painting in Photoshop, animating in the wonderful Spine by Esoteric Software (great tool that's worth every penny), and do all my video and audio editing in DaVinci Resolve (I used to use Adobe AfterEffects but the monthly fee was just too high for me). I also use Blender for any 3D work (I used to use Modo, but again, the monthly fee was too high).

Marketing for The Cat Machine wasn't too bad, I had an okay ground game with getting coverage from gaming websites and someone posts it on Reddit and for 2015 that was good-enough marketing for the time, more than enough to Greenlight the game. The voice actor is Scott Gilmour (@scottgilmour7 on Twitter) and I found him after listening to about 100 voice samples on all the different VO websites. He's fantastic! I don't share my sales numbers publicly, but Steam is about 70% of The Cat Machine sales, and about 25% is from the Apple Mac Store - where the game actually hasn't been published for about a year now, I need to get on that and reupload it. And games is right now my full time job, so no IP clauses needed negotiating, and my old employer back in 2015 was very chill about letting me work on my own stuff.

Hope that helps!


> I used to use Modo, but again, the monthly fee was too high

With Modo they do offer a perpetual license option where you can keep using the last version you paid for.

Thanks for your insights into your process. I agree, DaVinci Resolve is an excellent replacement for Adobe. I got the Speed Controller deal last year, it's nice having the jog/shuttle wheel and buttons.

Deciding what price to set games must be difficult. I'm in Australia, and the price of your cat game is $21.50. Even though that's equivalent to a large pizza and drink, it's steep for an indie puzzle game. I wonder whether a game like this would sell more and profit more if the price were $5 instead of $20.


Hmm, I would never price a game at $5, that sounds insanely low. I've sold a decent % of my copies in Oceania so I'm confident my pricing isn't off, it's been working for the last six/seven years in any case. From the looks of it the Australian Dollar price is just one or two US dollars more than the US price. There's always a bit of fluctuation over time though.


Thank you DizzyDoo for the details. It does help to understand what others are doing, so I can maybe emulate the successes and avoid failures ;) I haven't heard of Spine and DaVinci Resolve, I'll look into those. Thank you again and best of luck!


This is so amazing. This post and all the thread in it is very inspiring and a proof that one can make living from pretty much any type of development.

I am a web developer and always assumed that you need SaaS or mobile app to make money from programming. But I hate to be responsible for customer data or troubleshoot servers at night.

I might have to look into desktop development and even game development as that was the reason I studied computer science.


I've been wanting to enter the game space for some time now. Is this what you do full-time? If so, how did you transition from web dev to game dev?


I got up early every day and got in an hour or two before my proper full-time backend Python programming job begun. That and working on The Cat Machine on Saturdays got it finished within a year, and then after it came out I could go full-time. It's hard to just make the switch from 'real' (normal?) job to small business game programming without already having a game that's done okay released, so that's what worked for me.


How have you found the switch technically? What frameworks are you using?


I still use a lot of Python, often for little tools or scripts, especially anything where data needs to be transformed (like file formats for art assets), or something needs to be automated (run build scripts for all the different platforms). I built a little graphical puzzle/level editor for The Cat Machine with Python and SDL bindings too.

But I'm mostly using C# and Unity these days. There's too much useful stuff build into Unity to ignore it, and C# is very pleasant so I didn't find it particularly hard to make the jump - there's just a very definite 'Way' Unity wants you to do everything and so most of the time it's just a case of working out what that Way is.


Oh wow, hope this is sustainable for you, Eldritch Zookeeper looks wonderful and has been in my wishlist since it popped up in my queue!


We sell a desktop app with an involvement in dev and support of about 0.25-0.50 FTE, with revenues in the range of $50K/month although it was launched 9 years ago and the first year was only about $2K/month. The server side is just one Windows 4GB server for user signups, billing and license validation. One good thing of desktop apps is that the server side is so cheap, you are basically selling IP.

It has this features:

* B2B in a niche market (TAM < 100K-200K users)

* Some viral component so you do not have to spend money on ads for growth.

* Sold as a subscription and only as a subscription. Don't innovate with licensing focus on product, this is important. When users have fewer buying options, they decide faster. That's why Steve Jobs reduced 50 Mac models to just 3.

* When the subscription ends, the application must stop working. This is also very important. You want your entire user base to be able to install the last version. You do not want to support older versions, you only want to support one.

* Has to have a very generous trial so that users have time to find use cases with your product. Better a trial based in actual usage instead of exploding trial base in calendar days. You want your users to actually use your product and depend on it.


> * B2B in a niche market

> * Some viral component so you do not have to spend money on ads for growth.

Indeed. For years our sales department was simply our customers. They'd call their friends and tell them they need to get our software, or when they switched jobs they'd work hard to get our software used at the new place.

Now we have a small but proper sales team. However word of mouth got us very, very far.

> * Sold as a subscription and only as a subscription.

This was a key point my boss realized early on as well. It's much easier for the accounting department to handle a fixed recurring cost, than a bi-annual huge expense or similar.

It also allows you to incorporate usage into the price, so the price scales with the customers' income, not unlike cloud offerings.

We have a small fixed monthly cost, and a variable cost (per invoice/order essentially). The variable price depends on volume, but it's very predicable and makes it so the customer doesn't have to worry too much if business is slow for a while.


> Now we have a small but proper sales team. However word of mouth got us very, very far.

Note that viral is not the same thing as word of mouth. Viral means that one user expressly or subliminally forces other users to use that software.

For example, a customer asking or encouraging a vendor to use some specific software because it makes things easier for the customer and later, when that vendor is also infected with the need, they ask or encourage their own vendors to use that software too.

This is the distribution mechanism that we have for our tool.


Ah yes, my mistake. We have that for another product which works very much like that for our main product, but its effectiveness is mostly a quirk of our niche. Basically it's a product for the customers of our customers, or companies like them.

Since we integrate very well with our own products, we can supply superior data to this second product, causing the effect you're talking about as these other customers of ours puts pressure back up the chain.


I'd love to connect to compare notes. I'm well on way to $50k/month, but I have a feeling I can attain that revenue without a few of your bullet points.

* B2B niche - agreed, this is essential

* Viral component - I wish I could make label printing viral... but I feel like I'm dealing in the "colonoscopy of software" with my app

* Only subscription - I agree this maximizes revenue, but I find subscriptions user-hostile, so I also sell a one-time license

* Subscription expiration - obviously essential

* Generous trial - agreed, essential


If you’re selling B2B, it might be worth offering both perpetual (with yearly support & maintenance) and monthly subscriptions. Some businesses only want to do one or the other - might as well make it easy for them to give you money!


This sounds very interesting. Not to give away your company’s magic sauce of course, but if you were starting today, what niche would you target based on what you know?


In one in which you can truly empathise with your users, preferably something yourself have experienced as very inefficient and unnecessarily painful and complicated in your professional life.

It can be a relatively small gap in theory covered by several larger tools but only superficially covered either because they do not truly understand the pain point of that gap or because they simply want to limit complexity of their base product and their surface of support.

So then you focus on developing that feature to perfection with a strong focus on integrating with each of those larger tools, whenever possible without any collaboration of those larger tools (that will come anyways later if you get the traction).

The larger tools will never compete with you directly because if they created a tool doing the same thing you do, they would have to integrate with their direct competitors, which is a bad scenario for them as either they get expressly blocked by the other tool developer if seen as a threat or because by having such tool they would be ultimately improving their direct competitors tools.

Our current position is that if a customer of us decides it's time to change the larger tool, one of the factors of the decision is how well the new larger tool integrates with our tool.


Thanks for the detailed thoughts! Appreciate it.


Plenty of people do this.

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.


There are a lot of shareware or shareware-like desktop Mac apps that I have been relying on for many years. The programs continue to be updated regularly and don’t seem to be hobby projects, so I assume the developers are supporting themselves. Some are sold through Apple’s App Store, and some are sold directly by the developer.

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/


MacOS seems to be a good place to be if you're making paid desktop software. There's a lot of Windows utilities that are freeware and of course Linux is loaded with FOSS.

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.


The state of affairs is that Mac users are more willing to pay for software than Windows users, but not by a factor of 10, which is the Windows/Mac desktop market share ratio.


This wikipedia page shows that it's a bit under a factor of 5 difference between the two (based on StatCounter data): https://en.wikipedia.org/wiki/Usage_share_of_operating_syste...

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.


What is the state of the art in shareware for drop in payment / piracy protection?


As an electron developer I used NodeJS to implement a custom licensing system on top of JWT. My app "registers" a computer (fingerprint) with the server. The server can grant licenses where it signs a JWT with a secret key, and the client can verify using the public key. The client will enable features based on the JWT payload. Again... it's crackable, but it's serviceable and I make my software affordable through either a one-time license ($147) or a monthly subscription ($14.99/month).

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.


Re: payments - it depends on the country, but generally Stripe + PayPal + bank wires for larger/enterprise purchases. Alternatively, Braintree.

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


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

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/


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


> The calculator assumes that there's no cost to integrating with your system.

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.


If you’re the developer, I repeatedly tried to contact you to ask some questions. Since i never heard back, and I didn’t like the other options, I too ended up rolling my own.


I am. That’s very atypical for my support, and I sincerely apologize for that. Searching for your emails landed me in early 2020. And it looks like I forgot to respond to you. That was a busy time. After 4 years, I was in the process of quitting my full-time job to go full-time on Keygen, and I was in the middle of moving all support from Intercom to email. So my email was kind of flooded and I often forgot to respond to some discovery emails. It’s no excuse, but I figured I’d share. Again, sorry for the poor experience.


No problem! My apologies for sounding angry, I am not - I can understand how these things happen. I am quite interested to know that you're still keeping up with it, and I may be interested in trying out keygen again.


Handling taxes (VAT, sales tax) when you are selling worldwide is a nightmare. That is why many vendors pay the extra to use 'full fat' payment processors, rather than Stripe.


Stripe can handle sales taxes.

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.


>Stripe can handle sales taxes.

if so, that is a recent development.


Why bother with piracy "protection"? You're not going to keep ahead of dedicated pirates. Focus on features and bug fixes rather than going after non-customers.

Every iota of effort spent going after pirates is effort not going into servicing existing customers or getting new ones.


99.9% of pirates can only nop ifs. The remaining percentage are the pros that either work on paid basis or go after high-profile apps that give them visibility and status. A mildly well-protected battery indicator will remain intact for a very long time, simply because people who'd want to crack it, can't, and people who can crack it, won't.

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.


Probably not the answer you're looking for, but the Mac AppStore is the only thing at ever truly worked for me.


Thats nice to hear, seems like a big market to me and under serviced, I'm just about to release an app on there so fingers crossed.


There are payment services which were originally made for desktop apps, with built in support for license files, downloads after payment, etc. I'm using MyCommerce (ex ShareIt), but also had good experience with Avangate - which was later purchased by 2checkout, and now renamed to Verifone.


Shareware (at least back in the day) almost always had a free component. For a game that might mean levels 1-3 are free and then you buy the full game for the whole thing.


Why not eliminate that and just make it FOSS?


After 15 years of SaaS-ing, myself and two collegues, everyone part-time, are trying to see if we can make a profitable macOS app: https://paretosecurity.com/. Revenue in last 30 days is $3000+, we started working on it back in July. So, it's something?

That said, long-term, we expect to earn more from subscriptions for businesses, than we do from single-user lifetime licenses. But again, ATM, it's the single user licenses that sell well.


I don't have a Mac do I'm not your target customer.

However I really like your approach having a pay-once personal edition and a subscription team/business edition. It's something different from the subscription-everywhere trend.


I'll report back in a year or three if it does in fact work in real life hehe


Standard for years was perpetual license + monthly fee for premier support / maintenance so it is definitely a workable model.


That looks like a rather useful app.


Thanks! And it's open source: https://github.com/paretoSecurity/pareto-mac/


Interesting that you're selling a GPL licensed app. I think that's actually quite viable in many cases. I'd rather pay a low price and get something in the app store than have to build it myself.


What if a competitor uses the GPLed code to sell essentially the same app for less?


As much as I hate to say it as a developer: code is trivial. Finding users is the hard part.

Additionally, our long-term vision is to make the bulk of revenue from Teams subscriptions, where most value comes from a web-based dashboard (https://paretosecurity.com/teams), which is closed sourced.


I’m curious about the Setapp subscription option which is new to me. What was the process for joining the Setapp portfolio of apps and how is the subscription revenue distributed? Do you expect it to become a significant part of your revenue compared to one-time licenses or business subscriptions?


TL;DR: Quick & easy process, do it. Minor part of revenue on long term, though.

They reached out to us. We integrated their SDK (trivial), provided sales copy and screenshot, then waited about two weeks for the review.

For the first few months, we got the most revenue from SetApp, it quickly jumped to ~$800, but these days, we earn more from selling single-user licenses. I expect the SetApp part to become smaller and smaller as we grow our Teams subscriptions.

Generally, I think it was good. It got us a few hundred users very early on, which helped us focus on the features and fixes that mattered. It also helps with brand trust, i.e. if you are in SetApp, there is less chance of you being a scammer.


Being relatively new to macOS, I really like this program because there are settings I wouldn't even know exist. Also, it tells me when other programs, like docker or cyberduck have an update which is also nice.


How are you marketing this if I might ask?


I been making a full-time living since 2005 selling software written in C++/Qt for Window and Mac.

My latest product is a drag and drop tool for data transformation (merge, split, clean, dedupe etc): https://www.easydatatransform.com

Things have mostly moved to web, but desktop apps still have major advantages in some areas: -less latency -data kept locally -better development tools


This looks great! I think you've got one more customer. What did you use to build it?


Thanks. Qt and C++. The Excel I/O uses the LibXL library.


Atomic Edits[0] is a desktop app that helps YouTubers (like me) automatically remove silence in videos. It went viral on Reddit[1] but I realized later that building a video editing app with Electron (and not C++) was a bad choice. Library support video/audio editing was lacking.

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/


I work on a desktop budgeting application. I love that it's desktop-only (and so do the users)! It doesn't earn a living (yet), but it makes more than enough to cover expenses.

[0] https://www.budgetwithbuckets.com


I just tried this out this week! It isn't going to work for my needs (I like having payee names to track past expenses), but it looks like great software, and I wouldn't hesitate to recommend it to people.


> Buckets includes some terrific extras such as really fast Amazon why-do-they-split-every-purchase-into-a-hundred-transactions reconciliation.

magnificent! I hate reconciling my amazon -- and recently walmart grocery pickup -- purchases for this reason.


Why would I want to sit at my computer to manage my budget instead of being able to access it anywhere? I always have a “computer in my pocket”.


As a person who painstakingly used GnuCash for multiple years - no, no mobile app works good enough. It is always or too cumbersome, or too simplified.

And yes, it is almost always easier to punch in numbers on the desktop.


I do this every day with YNAB (even though they have a mobile app). Takes about 5 minutes. So much easier on a computer than on a tiny phone.


I use Google sheets for my budget - from my phone. I can’t remember the last time I actually used my personal computer for anything. I use my work computer for work and my phone or iPad for everything else.

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.


Some things are just a pain in the ass to do on a mobile phone I guess. Budgeting sounds like it would be.


Your application looks really nice. What framework are you using for the UI?


It's Electron (for now)


I'm downloading now, this looks really nice.


My Video Hub App is generating about $500 / month. It's a perpetual license for $5 per copy.

I am planning to create another app that might generate a similar income stream. I've done 0 paid advertising - only some posts here-and-there; I would probably have more sales if I knew how to market my app better.

https://videohubapp.com/en/ - MIT open source: https://github.com/whyboris/Video-Hub-App


Dumb question but why don't you get some help with sales and marketing. Even some affiliate marketing to increase usage.


Unsure where to ask. Worried about high costs. Suggestions welcome :)


Setup a Google Adwords account - once you get the basics its super easy. Very cheap to start out and they used to have a special where you got some free adword money to play with on starting a new account.

Generally I would say try to minimize the amount your spending per keyword - broader search terms or the broader options on those search terms always cost more.

Might help a ton if you renamed your software to something that is more searchable (or just add some kind of name on the end or start)


On a product that costs $5? Forget it. No-way you will get a return. (Background: making a living selling software online for 16 years, advertised continuously on Adwords for nearly all of that).


If you optimize so that you are paying maybe 2-5 cents a click it really just depends on the application and industry. Something people need to buy right then and there is going to have much better conversion than something they need to research and think about it. Plus there is value in just getting the name of your software out there and into peoples hands so that it then spreads organically after that.

For something like this I would probably start at like 30$ a month and keep optimizing - worst case you lose only a few hundred over the course of a year.


If you are paying 5 cents a click, then you might just about break even ( typically click to buy conversion rates are around 1% for desktop software: https://successfulsoftware.net/2009/04/23/the-truth-about-co... ).

But it is almost impossible to get any worthwhile traffic from Adwords in 2022 (in terms of volume or quality) at 5 cents a click.


No affiliate marketer is going to be interested in a product that sells for $5.


Experiment for a month or two with a price at $10 or $15. You might be surprised to find sales increase with a higher price (to a point of course).


I have a side-project (https://batterybarpro.com) that's a native Windows application. It brings in $400-1000 a month.


Hi :) I've been a long time user of Battery Bar Pro. Thank you! Its one of the first apps that I install on my new computers. What would be the best way to do a feature request/bug report?


You can use the Support Forum link on the homepage or on the purchase page there is a reference to my email address (in the bulk purchase section).


IMHO you could very easily raise the price to $15 and probably not lose any sales. Having a low price still has to overcome the concern of trusting your credit card to some website. Once someone has overcome that hurdle, 8 vs 15 is a tiny difference. I had software I sold at $25 originally and eventually had it at $99. Also, price signals quality.


This kind of small tools is what I've been thinking of doing lately. It should not consume much of your time after you deploy it and there's not need to have a server and dealing with people's data..

Small question: how do your users find your product?


When I first started, I was posting about it in various laptop forums and running Google Ads. Having a free version was extremely helpful (there are hundreds of thousands of free users). It spread via word of mouth pretty quickly.

After a while, I just stopped all marketing efforts and now it's all just word of mouth/google search.


Have never heard about this but this looks awesome - Gonna throw this on my old ass thinkpad tonight!


This looks really cool, and I'm particularly impressed that it's a one-time purchase for lifetime access and you're still able to make this much off of it (and at a very reasonable price point). Congrats all around.


There's a small error in the Windows 11 warning at the top of the page:

> removed the feature the allowed for toolbars

Should be that, I presume.


Fixed


happy customer here :)

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


I'm glad someone is making money. I'm not. I spent 5 years writing a unified workflow for folks writing a research paper/thesis/dissertation (Epiphany Workflow, Apple's App Store).

It begins with collecting ideas from websites and files, moves the ideas into an outliner, then supports organizing relevant ideas according to a report outline, and finally, supports reviewing relevant ideas while the user writes each section of the report.

I gave away 850 free copies that were good for a year and sold a couple dozen copies. I'm trying Reddit ads now. Zero success. It's daunting. I'm struggling and depressed. It's a damn good application, but I can't find a way to reach my audience.


First off, congrats on getting your idea out into a tangible product. Many people come up with ideas, even fewer take time, or have the skills, to try to actually build them, but you put in time and effort that made it to the end goal of putting it on the App Store. Not everyone makes it that far so congratulations on doing so.

I took a look because, as a current student, I often have to write research papers and tag ideas from multiple websites and sources. I think the cost is a little steep for Mac apps in general, let alone anything a student might want to trial. The question students are asking is "How much can I spend to improve my research paper skills?" $40 is comparable to a night out with friends or several meals and might turn off any potential customers.

Looking at the promotional screenshots for the application, I don't get a gist for what the application is or does. The actual images of the application are smaller than the text describing what is in the application. It's also not clear from those descriptions what the benefits of the application are. I'm not sure what a "structured workflow" is but maybe giving a juxtaposition between the traditional way a student might try to organize a paper and Epiphany's way might help students visualize how they could use the application themselves.

Lastly, the website[1] needs more examples and demonstrations of the application in action. I still can't tell what I would gain from spending $40 on a Mac app. To use an example, none of my friends are willing to buy the Things app[2] at $9 on iOS or $49 because they can get other apps that do the same thing for free. It's a price comparison game and there needs to be more discussion around what can be gained with this app over a competitor.

I hope this helps and I wish you well with your application.

[1]: https://epiphanyworkflow.work [2]: https://culturedcode.com/things/


Thanks for your kind words.

In response to your comments, I reduced the price to $9.99. I'll make it clear that there is a money back guarantee for all apps in the App Store.

The other suggestions I take very seriously. I will implement them, but this will take time. Several weeks probably.


It looks like you've put 5 years of love into the software, and 5 days into promoting it. Find someone who is into sales and marketing and get them to help. As an amateur I'd say, make the website styling look more en vogue, it has to look like it's a successful bang-up-to-date piece of software supported by a bigger business, people like to feel they're getting on board a new wave of coolness and productivity. Add some good testimonials, maybe in the margin. What about some small professionally made videos of how powerful it is. Make the website work well on mobile and tablet. Make it easy to buy, I never buy software if I can't just 'click to buy' with e.g. PayPal. Try different pricing strategies, how about first 3 months free (get them hooked) then $1.99 per month, cancel any time.


What did the 850 free users say about the app? If only a dozen people bought licenses, then something must be wrong. My app didn't really sell well in the first two years either -- it took a lot of changes until it was actually something that people wanted to buy, and I had to throw out some of my favorite features because folks just didn't understand them.

Just from reading your post, I suspect the app is too specific for your workflow and not generic enough that people can use it if they have a slightly different workflow.


Sigh! I got only one comment. I'd love to get more comments.


Just fyi, I'm in Australia and can't view your software in the App Store as it's not available in my region. Not sure if the region locking is deliberate, but perhaps that's part of the reason that sales aren't taking off.


This looks really cool. I'm not the target audience (no mac) but definitely don't give up yet.


>definitely don't give up yet.

After five years with no sales?


Yes, consulting for enterprises doing desktop stuff for laboratory and factory automation is still a thing, specially in air gaped environments.

Stuff like this, https://www.biotek.com/

I have done WPF and Windows Forms for companies using such kind of hardware.

Qt is the major alternative for these customers.

Also note that iPads and Android tablets with plugged monitors are a kind of desktops.


We're doing air gapped development (and even single-machine deployments) with web tech by just also including a server component with the client or on the air gapped network.

There is one instance where we still use machine control / HMI non-web, and that's when there is no TCP/IP stack available. Doesn't happen that often anymore.


Sure, Electron is also a thing, and even I was on a project where we made use of Web widgets in 2000.

It seldom comes up though.


I'm not talking about faking a web app, just use a normal webbrowser and point it to the internal server. It's what we do in industrial automation as well (of course with watchdogs so it doesn't end up displaying a dead page if windows is used and the HTTP channel shits itself).

We did this with meta-refresh and progressive loading (https://blog.codinghorror.com/the-lost-art-of-progressive-ht...) earlier on as well. Benefit is that you get that client-server model without having to do all that much special for the client side, works on any client that has a working browser (even ancient IE5/Netscape4 rendering engines), even embedded systems and weird stuff like NetFront and Opera Mini Java (which runs nearly everywhere).

A lot of actions are essentially reading for status and anomalies, and every now and when adjust or control things (not real-time actuator control like a robotic arm or something like that, that requires hard realtime loops for us), anything bigger than that you'd do on a full desktop style system anyway and you can just use a modern web app in the browser for that. Those then also work on tablets (wallmounts! yay!), PDAs (well mobile phones without modems today) and other devices.


I make a Mac app targeted at developers and sell around 150k euro worth of licenses a year. It's been my only income for the last ten years or so.

In my case a web app just wouldn't work very well (it's hard to connect a web app to things behind a firewall)

I'm also a firm believer in pay-once software, you still get recurring revenue unless you saturate the market, which a small company won't do anyway.


Sharing it here wouldn’t even qualify as an advertisement mate, feel free to throw that link in there and maybe scoop up a few more users for your troubles.


Would you mind sharing more details regarding your application?


Sorry, I'm trying to stay anonymous on HN.


I'm curious to know more, as both a potential competitor and customer :)

What's the name of your app, I'd like to give it a spin.


Also interested in folks doing this for their enterprise market and any available analysis on how to approach that market.

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.


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

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


For reference I'm taking my shot with https://github.com/wailsapp/wails (webview2 supported on Windows) and https://github.com/mozilla/pdf.js for a PDF processing related use case.

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.


ha, I'm doing the same on Mac! Reach out, maybe my (hopefully portable) backend/pdf module could help!


Ha, cool, thanks for the insight. I'm am curios about potential collaborations so ill reach out soon


I started a company that built, I believe, the most advanced no-code data automation desktop application (https://easymorph.com). It's entirely bootstrapped, profitable and pays salaries to 10+ people (and we keep hiring).

Many our customers specifically looked for an on-prem solution as they don't want to deal with SaaS and its privacy issues and use-based pricing. With an on-prem tool like ours they get unlimited runs, unlimited data volumes, unlimited use for a reasonable fixed price.

I believe SaaS is overhyped and in a few years the trend will change toward on-prem SaaS-like apps and platforms.


I just wanted to give you some kudos for the "see it in action section" in your site. The idea of showing your potential customers how your product works is such a simple idea that will help sell the product. Yet, few small companies take the time to do it. Good for you for doing it.


> It's entirely bootstrapped, profitable and pays salaries to 10+ people (and we keep hiring).

Congrats. That's the dream (to me). Bootstrap and create a handful of jobs.


Working on https://folge.me app for creating documentation and step by step guides ( basically an advanced screenshot tool with editor and many export options). One-time license, and no recurring charges, app brings in around 400-500 EUR (500-600 USD) per month.


I'm building a desktop-first (SaaS-eventual) data IDE for developers [0]. Making a living? Not yet.

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


On the other hand, downloading software to your desktop is a risk (cf the Solar Winds supply chain attack). I recently got asked to fill in 30 question risk assessment questionaire before someone could upgrade to the latest version of my software (I declined).


In these cases you could also ask for a 50x price as the “enterprise option”. Filling a compliance form is not just a nuisance, you could take in some liability, so decline it or make sure it’s compensated accordingly.


I've tried that. Introduced an "enterprise license" that costs a lot more and told people they needed to get the enterprise license if they want me to fill their stupid questionaire.

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.


My experience is similar. If someone wants your product, they will usually find a way to get it. I had one company that used some sort of slush fund to buy a laptop to install my software on, to get around their IT people.


I declined.


Being that it's open source, are you planning for revenue to be 100% from the SaaS component or do you have other planned revenue streams?


SaaS in the next year or two and eventually an on-prem enterprise server license yeah.


This reminds me of OpenRefine:

https://openrefine.org/


Neat project and wow acquired by Google! Good for them.


Mentioned it many times here of course, but I'm busy working on the Ardour DAW. It generates in excess of $200k/year, despite being 100% GPL'ed and freely available on most/all Linux distros. Somewhere on the planet, someone starts a version they got from us roughly every 2.5 minutes.


thank you for JACK, by far my favorite choice for audio plumbing on linux.


Have 4 macos apps that I have built about an year ago. Getting 600-1500 a month.

https://loshadki.app/


Curious to know how you approached advertising/marketing. How did people find your apps? How much effort and money was spent on finding customers?


The guy from Inkdrop [0] makes a living with his note-taking app. He also has a YouTube channel [1] which I found very relaxing.

[0] https://www.inkdrop.app

[1] https://www.youtube.com/c/devaslife


Uses a subscription pricing model though. I wonder why he choose that model. Personally I love the Sublime model, buy a license, use it anywhere.


Because a subscription pricing model brings in more money and a more predictable revenue stream. Most people selling apps on a pay-once basis can't afford to support it and develop new features indefinitely, so they move on to the next project and it goes into maintenance mode, only getting updates when a new OS update breaks it.

Also needs to pay for the cloud servers running it lol.


> goes into maintenance mode, only getting updates when a new OS update breaks it.

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.


I think it syncs the data between instances of the app (on the cloud - 10GB or something like that..).


By default, it's synced on Inkdrop's servers, but you can self-host your own DB if you want. It's well described in the docs: https://docs.inkdrop.app/manual/synchronizing-in-the-cloud


... in which case paying per month makes no sense.


Ok I can't thank you enough for exposing me to this channel. The aesthetics and vim and the complete coding is so relaxing. Do you have any other channel recommendations like this?


I follow him on YT. His videos have an amazing aesthetics, and the tech content displayed is simple mind blogging to me as a non-tech person.


Seems to be doing quite well too, considering all the hardware on his channel.


I've worked for the past ~2 years (in my spare time) on a macOS / iPadOS presentation app: https://hyperdeck.io

It isn't released yet, but I do have some loyal beta users, so I'm hopeful that some of them will buy the app once the last couple of issues are fixed.


Yes, but the desktop computer is typically attached to a $250k piece of custom industrial automation, the fact that there's 200 hours of C# programming for the HMI/ERP client/label printer/data logger is irrelevant to the customer, it's just a line item next to the PLC/robot programming, raw materials, welding, fabrication, wiring etc. Add some Beckhoff, Siemens or (yuck) Rockwell capacity to your stack - buy a used EK1100 and some IO cards off eBay, download TwinCat 3, and add that to your resume and you'll be able to build B2B products for a lot of places.

There are a surprising number of "controls engineering only" shops, it's not clear to me how that kind of business works out logistically when so much of the software requires certain kinds performance from the hardware and vice versa.


Thanks for posting this.

I have a background in embedded and a couple years ago I built a custom Windows GUI for an Advanced Motion Controls based motion system as a freelance project.

Until your post, I totally forgot that I have a Kollmorgen AKD control with a servomotor in my basement. A customer had sent it to me so I could test some custom hardware I designed for them and I always wanted to see if I could integrate it into my GUI project, but got so busy I completely forgot it was there.

Time to dust off the hardware...


Pay close attention to how you charge. I hate giving my credit card information to another company, so I end up using Amazon a lot just to have it in one place.

Similarly, with software, I am more likely to purchase desktop software from the MacOS app store. I feel exposed giving my information to a company I may not have heard of before. I do buy a lot of useful looking desktop software on the Mac OS app store.

It must be tough converting enough customers though and pricing is not easy.


I spent a few years on a side project for a 'better' screenshot tool: https://www.bettersnipper.com/

Tried to sell it for $5 home / $14 office, but only got a handful of purchases. I still personally use it every day and have probably collect 10k+ Snips across all my computers. I converted the entire program from VB.NET -> C#.NET over a year which burned me out and I've kind of just let it wither due to lack of interest.

I aimed for the "10x better" than free tools, but most people are fine with the Windows Snipping Tool. :shrug:, on to the next project. I recently added an achievement system and a screen Gif capture feature, but haven't found the energy to polish+deploy those.


I find it hard to take seriously software that is $5. Google 'price as signal'. Also you are up against some very established and polished competitors, such as SnagIT.


Thanks for the tip. It’s interesting that iPhone apps can survive at $2.99 price points but not desktop software. No app ecosystem to blame? (Does anyone actually use the Windows Store?)


Depends what you mean by 'survive'. A few people are making out like bandits in the app store. But the vast majority of apps don't even make pocket money for the creators.

The Windows store is a total joke. And this must be their third or fourth attempt. It must be quite embarassing for Microsoft.


...or Sharex, that is pratically a swiss army knife


All good points. I found Sharex to be overkill. I just wanted a tool that lets you take screenshots and edit and share them quickly for a cheap price.


I'm currently making between $3k and $4k per month making little utilities for the Mac, e.g.:

- Mission Control Plus to enhance macOS' Mission Control: https://fadel.io/missioncontrolplus

- Batteries to see your devices' batteries from your Mac: https://fadel.io/batteries


Your Batteries app looks really cool. It’s one of those apps you didn’t know you need until it is shown to you.


Thank you! It’s really one of those things macOS should’ve shipped with.


I'm developing https://ossia.io ; a free software for artistic creation (live shows, interactive installations, VJ, etc.).

Between public & private grants and the occasional consulting gig to add a feature or support contract, I can live :)

Tech stack is C++17/20 & Qt, I target Win / Mac / Linux (and mostly develop on Linux).


I have for a number of years, its mainly very specific products though, people seem to not realize that there are still lots of places that do not allow cloud connectivity or dependencies.

A lot of applications in the legal realm are like this, I was shocked to find out how many Judges won't allow the usage of wifi in their courtrooms, and that you can be hit with contempt for using the internet during a trial.

That and building applications that are specific to hardware devices, such as fingerprint scanners, and thermal imagining, it could be done via a service and a web front end, but at that point you are doing more work, for no real benefit.


Inside R&D organizations there are plenty of groups building desktop apps for internal use. We have a ton of Forms, WPF and some Qt apps we use for R&D and manufacturing purposes. Also lots of services and other non-GUI stuff.

For side-business it'll be a lot tougher than it was when I started 30 years ago.


Same for us in VFX mostly python though.


I work for a company that sells a niche desktop app for mining companies, called Aegis.[1]

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


Delphi?


It looks and feels delphi


Winforms


Winforms


I make a partial living with cross-platform, native desktop software (C++) ( e.g., https://www.phototangler.com ). That one is sold primarily to individuals, sales vary greatly month to month, and in general seems to slow down a bit each year. Beyond my own web site, I've managed to get that one on Steam and the Microsoft store, but neither of those move too many units.

My personal experience with selling other desktop apps over the years (many of which are now discontinued) has been that either people would pay for it (at all) or they wouldn't, after which it's mostly a matter of marketing to get more eyes on it. That is, I've had several other apps that didn't sell a single copy no matter how much traffic they received. And for the ones that do sell, doing targeted ad campaigns can definitely drive sales up, but in turn can be pretty expensive.


There’s also https://news.ycombinator.com/item?id=23211851 - “Ask HN: Is there still a place for native desktop apps?” - which I coincidentally came across today in an old tab.

It has a healthy amount of discussion.


A large fraction of computer games are mostly still "desktop apps".

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


I don't know how much longer this will last given stadia and xcloud. I've been playing on them and if they improve over 5 years' time, I could really see them becoming the standard.


Stadia won't be around in 5 years, it's a Google product.


I've read that they're white labeling the tech. So it won't be "Stadia" but it will probably still be around.


I’m building a desktop email client [0] that has $45 lifetime licenses. Made to scratch my own itch I’ve been using it as my only client for 4 years now, barely makes any money though!

[0] https://kanmail.io


I have worked professionally for a company that made desktop apps for film production (VFX), and also internally for studios in their R&D departments and those were also almost entirely desktop based.

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?


It is interesting that there are many ham apps that are single person developed and closed source, but free to download. It's weird how open source is not ubiquitous in that hobby. This leaves lots off ageing, quirky software out there.


I'm not sure how related it is, but the average age of people involved in ham is pretty old. I went to a few meetups near me and the average person there was at least 60 years old. So it might be that these apps are made by an older generation with different norms around open source. Could just be an EE vs CS thing too, since open source is less common the EE world.


Kinda have to be desktop based if your working with VFX levels of change the data - the storage solutions those types of places need to invest in are insane!


Most audio software for musicians are desktop apps or plugins. And people do make money selling virtual instruments and effects and so on that way. I don't know how much, but it's a market that exists.


Yes.

I’m building https://getmumu.com and the revenue is still growing strong over time.

And it’s been fun to make something that earns money yet people love the product.


35$ for 1 license? Sheesh, maybe I should raise my prices!


Raising prices, especially for B2B, is almost always the right thing to do. People used to chuckle at my pricing, which made them think I wasn’t serious. Until people start complaining about the price, it needs to go higher. You are probably providing much more value to people than you realize.


Will do!


I used to until recently. A LOT of active trading software is still traditional desktop applications for various reason and a decent niche. heavy simulation software is another


I'll add music making software. I don't make it but it's been my only hobby since the pandemic started and I shelled some money on desktop apps that can easily be coded and maintained by a single dev, like librarian software for hardware synths and some VSTs to use in Ableton.


I am in the process of doing so.

I am using both Dolphin Smalltalk and Free Pascal/Lazarus. Both produce very good looking forms in Windows at least, which is my target platform. Both are easy and quick to develop in, particularly Dolphin. Both have powerful events systems, sane object systems, both very amenable to MVC. Both backed backed by SQLite3.

Selling point for users is that user data is retained locally and not sent to a remote server, execution speed, and familiar workflows.


Related question. How to start to develop desktop applications? In contrast to web applications there are not many resources out there and most seem outdated.


Download Visual Studio Community Edition and go to New Project -> WPF project and start learning C#.

That's probably the path forward with the best chance of overall success.


This as opposed to cross-platform? Any general use case or for a targets Windows user base?


I'm answering in terms of what I know best. I, personally, don't see the point of supporting non-Windows desktops. User base isn't large enough for me to bother.


my cross-platform DAW, Ardour, has as many Linux downloads as Windows downloads (on the order of 5k per month). Is it the DAW niche? Or are you possibly wrong about this?


It's always going to be application-specific. In my case, the kind of software I'm likely to write is going to have a majority-Windows user base, at least in the US.


Afaik .net is cross-platform nowadays - Windows dev tools are likely to be most approachable though.


Use Electron and leverage your web skills. Learn as much as you can about the architecture before you start. For example, an Electron app has two main processes: main and renderer. The main process is like your backend API and the renderer(s) are the browser windows. Once you get the hang of it, the world opens up and you can really start cranking out code/features by bending the entire architecture to the will of the developer... until it breaks, but then you get to fix it!


I've not worked on a desktop app in a while but when I did, maybe 4 years ago, I found a lot of resources googling "MVVM C#" and following tutorials there. Microsoft tends to have a lot of decent tutorials on WPF Gui development. More recently I've been playing with C++ and Qt which has decent documentation too, but to me is far more complicated than Visual Studio and WPF. Most C# textbooks tend to have sections on GUI development too.


Try Lazarus/Free pascal. It's an open source clone of Delphi, and targets a wide variety of systems.

https://www.lazarus-ide.org/


We've been developing desktop software for Windows for more than 15 years. Our flagship product is a documentation writing tool, Dr.Explain: https://www.drexplain.com

Although today there are many online tools for help documentation writing, many users still prefer desktop software due to various reasons: from security and reliability, to better performance and better UX.

In the past, we offered only perpetual license with free upgrades within a major version (e.g. 5.1, 5.2, ... etc) Since July 2021, we offer 1-year subscription licenses. So, about a half of year is still required to see how the new licensing model works.

The profit is enough to support a small and agile team though our niche got a bloody ocean and we have to run faster and faster only to stay in the same place.

From my experience, desktop software still works well in vertical and professional niches. In B2C or mass market, mobile and web tread on.


I make Erp software with WPF. Yes you can still earn money doing that.


I know I was just misunderstanding, but for 60 seconds I was skimming through the comments trying to grasp the gist of what software for 'living buildings' was all about, I thought it was some ecological concept. Anyway, I earned a living making desktop software until 2016; since 2016 I make Revit desktop plugins.


We develop alarm management software for alarm receiving centers. (mainly in germany) A typical installation is in the 5 digit region but for sustainable income we offer (and live from) update subscriptions and 24/7 emergency support. Cost for both is a monthly fraction of the license sum.

What sets us apart from other software in the market ist our internal "workflow" engine with a graphical (flow chart like) editor. (somewhat similar to Node-RED)

Our customers can use it to program the reactions to the alarms (calls, mails, SMS, comparisons with states, user entry, reporting, etc.) individually to their (or their customers) demands. But some of them go further and use it to implement all processes of their company.

We also offer consulting, customizing and individual development for our software.


We (an elementary teacher and a computer scientist) are helping migrant children without any knowledge of the german language to learn it easily and give elementary teachers much more time and improve the quality of their lessons dramaticaly with a desktop application for learning the german language and various perfect fitting supplementary materials.

Often, german elementary teachers are facing the following situation:

Consider a typical class of children with only a half of them capable to understand german. The teacher then constantly switches between those two groups trying to help each child as good as he/she can. That can be very frustrating because the teacher simply does not have the time to help each child as it needs (because the non-german speaking children often really need a 1:1 care to learn efficient). The other half, the german-speaking children, will quickly come short as well.

So we developed a learning software which is so simple that every child can start learning with it instantly.

The problem we are solving with it: The non-german children are now able to learn for themselfs without the need to ask the teacher while having great fun and much better progress than before!

Once they are at a level where they unterstand the basic german words, they can follow the lessons much better which results in much higher quality of the lessons for them and beeing able to learn even quicker each time.

As our small two person team consists of a elementary teacher who is working every day with those children (and is therefore constantly improving our products as she's using it in her own class) we know exactly what those teachers want for their children and what is giving the best results and motivation for them to learn german!

It is a great joy to help all those children - it does not make big numbers in terms of revenue but it will enough for a living shortly. That's more we ever dreamed of as we started nearly six years ago :-)

https://www.ma-lernsoftware.de


Pardon my ignorance but isn't it a huge mistake to place non german speaking children in these classes? They just hope they'll pick it up along the way? Isn't it throwing them to the wolves?


there aren't really many other options. having separate schools for migrants would make it difficult for the children to integrate into the local society, but integration is seen as critical for everyone to get along.

immersion into the target language environment is also the most effective way for kids to learn a new language. they will make friends with native speakers, and that will only help their language learning.

in elementary school there is also less focus on academic performance


That's right. In germany all children (no matter of their origins) have to go into the same class. That has been discussed controversial but that's the decision of the government. Once, there were so called "Welcome classes" where all immigrants were in for the first several weeks to get the basics very quick (which worked very good in our opinion by the way). But then the government decided that this is not good and started to tell all schools to integrate them from the start (which then leads to the massive language-problems we try to solve). But for integrating those children into the community it is probably not that bad.


My company [0] makes a CAD-like destkop product for architects & real estate developers. It's sold on a subscription, but the product is a native application (runs on C/SDL/OpenGL). Nothing inherently prevents you from mixing that business model and delivery mechanism. Many of our customers (especially architects) are used to installing & running desktop software.

Pros: - You give customers the magical feeling when the app reacts instantly because the front-end doesn't have to wait on a round-trip to the server to execute complex business logic. It actually blows customers' minds to realize how powerful their computers are when you use the hardware well and don't have to wait on the network. - You have a very low infrastructure bill. - The platforms/frameworks/libraries are pretty stable compared to the webdev world. You do less migration work and get to become an expert in something that will be around for a longer time. - It's easy to develop and test locally in a 'production-like' setting. I make sure my hardware reflects my customers' hardware. - You can trace every line of code after main(). It eliminates a lot of complexity and a whole category of service communication bugs (and introduces other categories of bugs :)). - Developers are usually more predisposed to thinking about performance (in my experience).

Cons: - You have to buy & renew code signing certificates, which is a hassle when you're independent or a small company. - You have to build/buy/maintain some form of installation/update system and be prepared to deal with users who refuse to update. - You have to deal with corporate IT departments & their security requirements (we're B2C). - You typically want to customize at least some parts of the UI/UX for Mac/Linux/Windows. - You run into bugs from clients that are hard to debug because "it works on my machine", and you don't have access to theirs.

It's definitely a trade-off. I can understand why most devs/companies don't choose to be on the desktop.

[0] https://www.youtube.com/watch?v=lhCm5sh9mr8


I do. Data management and visualisation for local data store. This stuff is private and can not really go into cloud.

Was using Java Swing until very recently. Switched to Kotlin JS in browser, not sure it can count as desktop anymore.


How have your experiences with Kotlin JS been?

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.


It is good if you want to avoid javascript, it is programming on web, but with solid Java tooling. My main point is to have the same language on front and backend.


My friend is working on a (currently) Windows-only desktop app called PixelCNC, which converts 2D images to 3D meshes and the associated g-code for machining. He’s been doing alright with it from my understanding.


I work at Veeam, our main product (https://en.wikipedia.org/wiki/Veeam_Backup_%26_Replication) is a WPF desktop app. Some of the newer/smaller ones are web(react) based. UI is of course just a small part of all the stuff that goes in a large B2B/Enterprise app, but technically it's a desktop app. Also, FWIW, we do subscription licensing, so I don't think it's a real dichotomy.


https://nocommandline.com is a GUI for Google App Engine. It’s an electron App and is currently only available for Mac and Windows. I later added a GUI for Datastore Emulator to the App and am slowly adding other features and fixing bugs.

I’m not making enough to quit my 9-5 job but I didn’t build the App with that in mind. Built it because I needed to scratch my own itch and figured others might find it useful too.


6+ years on a team of approx. 5 (BA, UX, software engineers) developing a Windows/WPF application to configure equipment for industrial process control. When I left the company just under a year ago additional work was being planned. It may be a specialized area, but desktop apps are definitely being built in this space - had an awful lot of fun building the app as well.


I do not develop myself but there are a lot of people who do.

In Photography there are a lot of desktop apps that are custom. More now than in a long time thanks to Adobe going subscription based.

At least for the time being, in my opinion, a web-based photo DAW, editor is not practical.

I might be wrong on that already,

But enough photographers feel that way for now that there is money to be made.

The App store has some great independent desktop applications.


Not a self-venture but my old team built desktop applications for the pricing department at a very large airline. They did everything from recommending price changes to loading ad hoc adjustments and keeping track of pricing strategies. All in JavaFX. That team split and is making most of them web-based now but the desktop apps still thrive in the meantime.


PC, mobile phone, and console games are all desktop applications (when defining desktop applications as non-http applications).


Unfortunately yes, currently. I left the sad state of native desktop apps 15 years ago, but we are now contracting for a medical app, windows of course. But, the new thing: also Linux!! armv7 firmware running the very same code as on windows.

But only temporary. All the other contracting jobs and internal projects are Linux or baremetal firmware only.


Desktop app dev feels like a dying art, unfortunately. I see many comments mention Qt, but just wanted to give a shout-out to wxWidgets too. I chose it on a recent project over Qt for resulting in a more lean statically linkable self contained binary, and it also seemed easier to get a native look for all platforms I was targeting.


I have a cross platform desktop app built using Electron and .net core. It finds the schema or data differences between Postgres environments. Currently working on a MySQL version along the same lines.

https://www.postgrescompare.com


This looks like a very niche tool with one-off usage pattern. Seeing it being sold as a subscription makes very little sense, at least on the surface.


Our Company used Cordova to develop mobile apps for field technicians. And now we use almost the same code base to deploy it to the Desktop with Electron. The experience with Electron is very decent so far! The docs for Electron Builder could be a bit better though!


Yes. I have a suit of watermarking apps under the uMark name. Although I also have a full time job, I make as much money from uMark as I make from my job. I can easily live on any one of the incomes.

The app is developed in .Net way back in 2006 and I keep updating it periodically.


Yes. Tools for developers and artists. It's a healthy market if you can provide value.


There's plenty of people making a living off of single player video games.


I/my company have active Windows desktop application as a product with about 50,000 clients. Not making me rich but in combination with the products I develop for clients I am doing ok.


Bill Gates did alright :P


Thanks for posting the question. Great responses. Slightly more encouraged to resurrect an old .NET app for windows and Mac. Motivation is still fleeting.


I am (among other things) maintaining a desktop application written in Java used by business rules experts to define complicated airline business rules.


We are building and hiring at https://www.timebyping.com/


Webgility is an example of a SaaS company that offers a desktop or cloud-based version of their product.

Quickbooks for that matter as well.


I hope people are still building desktop apps because as much as I hate that literally EVERYTHING is being made into an app on mobile (mainly just so they can then push notifications) there are a lot of things that really just run better as a desktop application. Do browser based video editors for example exist? Yes they do and I am sure they have their uses. But if I need to ingest a few hundred gigs of footage and cut that down to a reasonable length there is no way I trust Google Chrome's memory management to do that in any reasonable fashion.

I think what I miss the most are the really lightweight desktop applications that use very little resources but still help accomplish very large things. People love to rag on Windows for the fact that it maintains backwards compatibility but that has also allowed some fairly old but amazingly efficient applications to still be useful today.

My personal favourite example of this is a one man shop developer from Japan who makes some insanely reliable and useful tools on Windows:

FastCopy:

https://fastcopy.jp/

This tool has been around since 2004 and the original developer is STILL regularly updating and improving it. It blows away every other file copy tool on Windows out there (even the fanciest paid solutions) and the interface is dead simple and easy to use while still offering lots of advanced features. Many years ago I had to regularly move terabytes and terabytes of data to external drives that were then driven between VFX houses in Los Angeles. A lot of these outfits were basically smaller startups so often we would have multiple drives connected over USB to a single workstation with a 10gig link back to the storage server. I did extensive testing comparing every tool out there and not only was this thing a little faster than even the best CLI tools it also destroyed the others in terms of reliably transferring data over connections that were not always reliable. If the USB interface dropped for a second a lot of the other tools would fail or start doing a diff compare from scratch while this thing just happily chugged along. And once I had set it up and enabled the right click menu integration it was easy to train someone who was not very technical to use it. It even beat every Linux based solution I tried in reliability.

IP Messenger:

https://ipmsg.org/

Same guy also makes IP Messenger which is a ridiculously light text chatting tool. It only works over LAN (hence the name) but requires NO central server, has tons of customization options (and can also be locked down in a business environment) and is pretty feature rich. It is also regularly updated and is end to end encrypted and will run on the slowest of the slow machines. And it has been around since 1996!

Both of these are free but I would honestly pay pretty good money for them if I was running my own business.


Fastcopy is no longer the fastest copier and it hasn't been for quite some time now. It can's even beat robocopy /mt in mass file copying and it is barely on-par with it when copying larger files. And on SSD and NVMe drives fastcopy is not even a contender.

Its edge was that it used different copying strategies when copying between two spinning disks and when copying within the same one. This was a novel idea back in the 90s and it's a good tool, but its time has passed.


desktop does not imply "not SaaS". I'll add that today most desktop apps are headless Chrome. that being said, I actually do web, but were I to go desktop I would look for a niche that can't be done in browser, even though today you already got access to most APIs & hardware...


I agree with that. Things like Fusion 360 are both desktop apps and SaaS. The desktop app checks that you have a subscription before it will let you use it, and various cloud things nobody wants are forced in. (Photoshop has a similar business model, now that I think about. Everyone wants to be a cloud storage provider instead of just taking money in exchange for a piece of software.)


> I would look for a niche that can't be done in browser

What kind of niches would that be, beside audio/video and other cpu intensive things?


Pretty much any webapp can be replaced with local desktop app for security and privacy concise people. Some of things I wish had desktop version:

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.


On my current team we work on a cashiering desktop app, that needs to interact with local devices for processing checks and credit cards. Although almost everything reaches out to an API at some point, I'd generally say desktop apps are still relevant in cases like this.


Bluetooth PoS printers are a bitch to work with and good luck doing that from JS.


Stuff that needs low-level access to the file system. You can now handle that at a crude level with web form file uploads and generating dynamic data URLs for download, but it's still not as smooth as using the native file system.

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.


Something that requires absolute real time responsiveness?


There are web-based (in browser) CADs and DAWs... What sort of application would be more demanding?


I am not sure. Something that has a lot of back and forth with peripherals?


Anything that touches a lot of files?


Ok, but what kind of business niche would that be?

You can also touch a lot of files on a webserver, although it would be a pain to upload them.


Sure, a lot of people keep their stuff on somebody else's servers — a.k.a. the cloud — but there are still users who have plenty of local files: music, photos, code...

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


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


For example file management. "Directory opus" is a windows desktop 'better explorer' in this category (I have bought a license myself, it's pretty darn good).


> I'll add that today most desktop apps are headless Chrome

Hmm, I don't follow — Headless Chrome is Chrome without the GUI. That doesn't sound so useful as a desktop app.


lol … it’s funny this is even a question. But this is the world we live in.


Mobile?


Desktop apps could be be doomed in walled garden.


Desktop programs don't require permission from an app store, so there's no wall.


That is correct. Only you need a code signing certificate (EV is even better). And renew them every third year.


i did for a while selling utilities for MMORPGs

it was making some decent amount, i was a student at that time, so it was very satisfying experience; better than working for macdonald ;)


I made some windows apps for designer: https://beforedo.com/beforedo and i also made some web apps: https://www.alovez.com/bing https://www.alovez.com/snapfeel


I made some windows apps for designer https://www.beforedo.com/beforedo


[flagged]


Yeah, could not sell a single copy of the software I was doing back then.. I’m still trying to come up with something. Tried web apps but hadn’t much success there as well.


Does it make you feel better to make others feel worse?


What an incredibly rude thing to say to another person.


Wait... we're not all bots?




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

Search: