Normally this would be relatively easy... just have a subscription model for $x/mo and move on. But the weightlifting events are rarely held at locations with internet. So the software is written to 100% functional offline... but Im having trouble thinking of a way of monetizing it.
So far my idea is to encrypt the results of the competition after it is complete. The user would then need to connect to the internet after the competition, log in, pay, and then could get their decrypted competition results. Alternatively, I could just sell it like a normal product, $x/per download...
That all feels so obtuse though... Id love any feedback, better ideas, or discussion.
* Yes they have a mobile and web interface too, but I mostly use the desktop app anyway.
Thanks.
We should be responsible developers with the ability to patch insecurities in the software we sell. You're also going to have feature requests you'd like to publish to your users. As a sole developer one evergreen version seems much easier to maintain for both these concerns. And I think a subscription model or some recurring payment model makes more sense both for you and your users. Explaining this to your users maybe difficult, but if they actually find a product useful they should want the developer behind it to be able to support it.
For OP's kind of software, I'd say one time license purchase would be the most user friendly. So yeah, sell it like people did in the good old days, before the cancer that is SaaS took over the world.
Results are read-only without a valid key. Don't encrypt the data as it will irritate all your users. People will want to review results during the event, if only to verify that it was correct. Or contest results a few days later. In races, people are sometimes disqualified even months later - I don't know about weightlifting.
On the other hand, new input/modifications require a valid key.
Keys are renewed either automatically (with an online license check / renewing payment) or through an online purchase which returns a license key to input.
You can have a start/end date to the license to bracket the event, with a few days/weeks on either side for flexibility.
Note: I've never done anything like this; these are proposal only.
To be fair, it's not really all or nothing like that, but remember that offline software is already a niche market. Is it better to go half-way into a niche market, or all the way? In other words, your users likely chose your software over the dozens of online offerings because it is an offline app, and then the very first thing you do is make them connect to your server.
Although, I don't see any downsides of doing server-side verification if there is a network connection available, it would be nice if offline software could work on a computer that was offline.
I'm working on a side-project that I may sell as offline software. One of my marketing claims will be that the users own the software forever. They wont experience a "UI upgrade" that makes things worse, and if I go out of business their software will still work for decades or longer. I cannot honestly make that claim if I require server-side verification. I'm betting that my niche users will care about this; if not I have no product because there are dozens of online competitors.
I've actually specified that a single license is per a single user but can be installed on multiple machines. I've had several users request this.
Is there a massive amount of data entry that is not suited for an iPad or phone(iOS/android) ?
Given the fact that you can probably record the video of the lift using the device camera, plus a few more obvious advantages...wouldn't it be better to do it this way ?
Plus your distribution+billing is also sorted (using the Play Store/App Store).
If you do a ipad version, remember you can make it keyboard friendly, so even that reason is out.
I can think of more and more things that are only possible in the mobile version - bar code/QR code scanner (in case you are selling tickets to the event), livestreaming to YouTube/Instagram, etc
Just charge for the software, provide a download link, and have a simple activation step. Most of your users are not going to be technically capable of bypassing even a very simple registration system. And if they are, it will be very difficult to win that arms race without alienating your honest customers and destroying your product's reputation.
Choosing a good price and treating the customer fairly are the most effective anti-piracy measures you can take.
Did you just assume weightlifters aren't technically capable?
Also not assuming that weightlifters are the same as the folks running the events. In my experience the people who run events just want software that works, and are unimpressed with packages with elaborate and fragile DRM systems that can fail in the middle of a conference. Laptops fail or are stolen, and recovery from thumb drives and "somebody drive find a Starbucks and get those files from Dropbox" are often done with the clock ticking and the crowd getting restless.
You could also just release it as shareware. Especially if you're writing this because you take part in this kind of event and have gotten a lot out of the general weightlifting community; now you're giving something back. Have a splash screen asking people to send you some money (maybe with a suggested donation) or a note with their thanks.
Look at different business models and pick the one that works for you. If you want to hang ads on it, do that. If you want to work with the certifying authority for the sport and have the sports association pay you a yearly fee to provide the software to all official events, start investigating if that's possible. If event promoters find value in the software figure out what they are willing to pay for it and sell them licenses ( yearly, per event, lifetime, whatever works ).
Don't half-ass it by thinking you aren't in business, fully ass it by making it _your_ business.
Use the electron portion as an offline data collector for the web app.
Once the event is over the electron app uploads the data to the web app where they interact with it, share it etc.
Then you can handle your subscriptions through the web application.
In addition to offline functionality, can there be any type of online functionality built-in as a convenience? I’m thinking automatic backups when an event ends, sharing results to a portal for competitors to log into later, etc.
If there is, you can use a hybrid model and offer those as a subscription with a fixed license or (depending on price) a more expensive monthly that will bundle the fixed license.
Good luck!
You said that you have no interest in building a business out of it, so maybe you could just work with donations and maybe occasional feature request bounties.
No, it's not.
Really? Even mobile networks? Are you familiar with floarena? Seems like a similar idea for wrestling events and it works great online -- allows people both at the event and remote to follow what's going on...
Sublime Text isn’t a bad model.
We're pretty far ahead so you could probably look at the source code repo if you want to look for ideas.
Anyway.
Do this...
Create a public/private key pair. Require the user to enter a 'key'. The key is just ascii armoured encrypted data from the private key. Just make sure the key validates.
They're competitive body builders not alpha hackers. Just obscure it in some way and you're probably good.
This system works offline too since you distribute the public key with the app.
The ASAR stuff in Electron has some obfuscation related framework but I haven't looked at it much.
Can you rely on them eventually connecting to the internet after the competition?
Can you add a cloud component that stores and shares the results online that they'd want to access?
Is it important to encrypt the local results? I would worry about getting successful first before wasting even a small amount of time on copy protection. People that are going to burn their own time breaking copy protection and risk legal consequences for the sake of a few $100 are unlikely to ever be your customers anyway.
This would be so annoying for customers. I'm sure your customers will not expect this to happen no matter how many warnings you so and when it does, they'll be furious that you let them use it first and then locked in their data forcing them to pay.
Why not make it a subscription and make the app lock down if it cannot contact your server to verify its subscription key let's say every week or so. Most traditional desktop apps followed this model. It can also let you charge them based on the usage or volume of data so you can have subscription plans. Of course people talented and inclined enough can find ways around it but I wouldn't worry about that as much.
But don't encrypt the results -- what's the incentive to use the app then? Instead provide value to any user (it collects and saves the results locally), but for a subscription the data collector could upload the results.
Then you have a choice: does the event holder or the competitor (or both) pay to see the results? The fact that you collect them means competitors who compete in different events can see all their results, view leaderboards and the like. You could pretty well automate all that so your involvement would be minimal. I don't understand your domain but without prior knowledge I would think it would be easier to charge the contest holder.
Your model might be something like Strava.
- Lift Log is a weightlifting journal that doesn't have any cloud functionality. It's been free for years, and I recently paywalled it at 7.99/mo or 59.99/yr (for all new and existing users). I received an incredible amount of backlash, but in the end it was worth it.
- FitnessAI uses all the data that Lift Log users generate to power an AI weightlifting coach. I charge 9.99/mo or 59.99/yr for that one with little pushback from users.
At the end of the day, you are affording your continued time and effort to maintaining your app, which is why I think a subscription model is fair.
Its not like we're writing books where all the user gets is v1.
They get v1-Infinity.
Its very easy to undervalue your work, don't!
And remember, you can always give anyone who asks free access, since you have unlimited supply :) Thats what I do for Lift Log.
Feel free to PM me if you want to talk more!
jakemny gmail com
I sell per download for $3.50 minimum (users can pay more if they would like). It was released last year around the same time and now has 473 copies sold. Late last year I made it open source: https://github.com/whyboris/Video-Hub-App
Unsure if anything I shared is valuable to your situation. I chose against using licenses / serial numbers / etc - fewer headaches. Makes the user experience better I suppose.
The idea of having to login to see the results, is frustrating.
If you are looking to do pay per model, you could sell usage credits, and have them buy them before hand, or require to purchase one to see the results?
Additionally you could do a split functional option, with basic free functionality always available, and then enhanced functionality available only when connected.
Generous trial. It will help with distribution.
Implement some way to upload competition results to YOUR results server. Make it easy to navigate. If traffic deserves it add some relevant ads.
IMO, non-techies are generally in tune and generally accept that there should be an iOS app for the software and aren't adverse to sub models given the plethora of other things they do. In fact, some might see it as a negative for the tool to not be iOS based and have cloud-type presence.
Customers failure to fight subscriptions made everyone realize that you can extract much more money from them. Back in the day, only big vendors like Microsoft got away with wacky high maintenance percentages.
I see even little vertical vendors come in with 30-35% proposals all of the time lately.
Sell it per download.
Why?
If it is to be run in areas that rarely have access to the internet, then your target market isn't probably interested in buying a license or any thing that even remotely makes the app hard to use.
Go easy on your customers. From the moment they visit your website to the moment they have the app up and running should not take more than 3 clicks. Just my 2 cents.