Readit News logoReadit News
Posted by u/jventura 4 years ago
Ask HN: Anyone making a living building desktop applications?
I did ask the same question in 2016 [1] and got some really interesting answers.

I'm still chasing the dream of having a side-business and earning some side money, but with web apps it means mostly SaaS. Personally I hate rent-seeking behaviors (I'm not alone, it seems - "Tell HN: A Conversation Needs to Be Had over Subscription Software" [2]), so I'm trying to know what people are doing regarding desktop apps.

Are people still building desktop apps? More specifically, can you make a living (or earn some side money) in 2022 by selling a desktop app? Please share it with us, or are we doomed to build web apps and SaaS for the foreseeable future?

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

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

grujicd · 4 years ago
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

Melatonic · 4 years ago
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.
grujicd · 4 years ago
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.

idiocrat · 4 years ago
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.

foepys · 4 years ago
> 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.

rozab · 4 years ago
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

grujicd · 4 years ago
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.

Scramblejams · 4 years ago
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.
mwattsun · 4 years ago
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.
thom · 4 years ago
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.

grujicd · 4 years ago
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.
dep_b · 4 years ago
Converted a simple WinForms app for scanning and reordering medications using Xamarin Mac and storyboards. It was relatively painless.
splittingTimes · 4 years ago
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

franga2000 · 4 years ago
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
splittingTimes · 4 years ago
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.

huhtenberg · 4 years ago
> 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.

derekja · 4 years ago
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!)
splittingTimes · 4 years ago
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.
PaulDavisThe1st · 4 years ago
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!

splittingTimes · 4 years ago
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.

COGlory · 4 years ago
My father is a dental technician and has a Dental Wings scanner. What a small world.
splittingTimes · 4 years ago
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.

indigodaddy · 4 years ago
My uncle founded Jenmar, heard of the company and software?
splittingTimes · 4 years ago
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.

semireg · 4 years ago
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.

smoldesu · 4 years ago
> 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.

semireg · 4 years ago
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.

pjerem · 4 years ago
> 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).

Deleted Comment

jasondigitized · 4 years ago
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.
semireg · 4 years ago
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.

chrisandchris · 4 years ago
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 :) ?

semireg · 4 years ago
Sorry, it's right here: https://label.live/printers
ChadB · 4 years ago
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!

semireg · 4 years ago
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.

bachmeier · 4 years ago
> 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.

semireg · 4 years ago
AFAIK, there is no support for electron apps on chromeOS.
OJFord · 4 years ago
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?
semireg · 4 years ago
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.
kuratkull · 4 years ago
Invalid question. Talking to hardware devices is OS based, it can't work accidentally.
Melatonic · 4 years ago
Does it work with the tiny Dymo printers?
semireg · 4 years ago
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… :()
ungamedplayer · 4 years ago
I wrote the original Dymo drivers for cups. They are now completely rewritten and a ppd iirc.
fxtentacle · 4 years ago
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.

bmj · 4 years ago
cleaning yourself

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

cookie_monsta · 4 years ago
I, too, am a couple of pay raises away from paying someone else to clean me
seb1204 · 4 years ago
Had to smile
hermitcrab · 4 years ago
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.
jb1991 · 4 years ago
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?
fxtentacle · 4 years ago
Dxva, the windows dx12 multimedia API

Separate store and fastspring.

Deleted Comment

MangoCoffee · 4 years ago
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.

moonchrome · 4 years ago
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.
ryandrake · 4 years ago
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!
fxtentacle · 4 years ago
Directx for everything to make things fast and to get nvenc hardware encoding.

Imgui and juce are great frameworks.

DizzyDoo · 4 years ago
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...

optymizer · 4 years ago
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.

DizzyDoo · 4 years ago
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!

fvavsc · 4 years ago
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.

colbyhub · 4 years ago
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?
DizzyDoo · 4 years ago
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.
thom · 4 years ago
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!
throwaway204401 · 4 years ago
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.

magicalhippo · 4 years ago
> * 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.

throwaway204401 · 4 years ago
> 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.

semireg · 4 years ago
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

DougN7 · 4 years ago
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!
drchiu · 4 years ago
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?
throwaway204401 · 4 years ago
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.

eps · 4 years ago
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.

tkgally · 4 years ago
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/

ziml77 · 4 years ago
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.

mapmap · 4 years ago
What is the state of the art in shareware for drop in payment / piracy protection?
semireg · 4 years ago
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.

eps · 4 years ago
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).

giantrobot · 4 years ago
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.

RantyDave · 4 years ago
Probably not the answer you're looking for, but the Mac AppStore is the only thing at ever truly worked for me.
grujicd · 4 years ago
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.
Melatonic · 4 years ago
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.
netr0ute · 4 years ago
Why not eliminate that and just make it FOSS?
zupo · 4 years ago
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.

chrisandchris · 4 years ago
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.

zupo · 4 years ago
I'll report back in a year or three if it does in fact work in real life hehe
jb1991 · 4 years ago
That looks like a rather useful app.
zupo · 4 years ago
Thanks! And it's open source: https://github.com/paretoSecurity/pareto-mac/
divbzero · 4 years ago
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?
zupo · 4 years ago
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.

ulimn · 4 years ago
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.
muttled · 4 years ago
How are you marketing this if I might ask?