This is so tough and I’m still trying to figure it out. A few years ago I built an MVP label printer app on Electron/React using all sorts of native node modules for a seamless design and print experience. I support dithered images, tons of barcode types, excel/csv integration with variables, and can render multiple labels to PDF “sheets” for laser/inkjet printing.<p>My software competes with free software provided by DYMO and Brother thermal printers, and also competes with $350+ software designed for more industrial printers like Zebra, etc. My software is used by consumers and businesses and I sell it for $47.99 per-computer perpetual license.<p>I’ve thought about breaking the features out into $20 for a text/image license, $50 for that and barcodes, and $100 for all that and data integration. But that’s a lot of complexity for both implementation and explaining to the user. Ugh.<p>Another thought is to do a subscription of $10/month and after 12 consecutive payments the user is awarded a perpetual license that will work for that most recent version. But that implementation is also complex...<p>I feel stuck. Consumers don’t want to spend more than $20, and some businesses will gladly pay whatever I charge. Some consumers want barcodes and data integration. Some businesses just need text.<p>I don’t know what the solution is to make everyone happy.<p>Since my app is “a web app” running locally I’ve given some thought to pushing the design interface into the cloud and keeping the electron app around as a print agent. Then, users will have the ability to design and print to any printer with an agent available. This would be an easy subscription sell, but then the user would just prefer the entire experience locally, anyways. Ugh.<p>Fun problems to think through, though!