If you’re like me you probably have tons of Python apps on your local computer and you are wondering if you could generate passive income with any of them. By following the steps in this article you can narrow down if the application idea is good enough to sell in the first place, is the code quality high enough, how to get your application in front of potential customers using advertising, and how to set up a store front that customers can buy your application from to earn money from your Python code even while you are sleeping.
Come up with an idea that sells
The critical thing to remember when creating any application to sell to a customer is that it needs to be a good idea that solves a problem. To make code that solves a problem you need to be aware of problems that people are likely to encounter.
While creating this blog and managing my youtube channel I have encountered issues with managing files, thumbnails, and constantly switching accounts to upload python videos to the BeAPythonDev channel and gaming videos to my gaming channel. This has become enough of a hassle that I am working on an application that will simplify this for me and likely other people that run YouTube channels. Because it solves a problem and reduces manual overhead it will likely sell.
Simplify your customers pain points
Once you have an idea that solves a problem for yourself and likely other people you should identify who your customers actually are. After identifying the customers you can think through what other problems that they would encounter in the domain of your main use case.
In the example I gave above for uploading youtube videos to multiple channels there might be an instance where the people uploading the videos also want to notify their audience on other social media that they have uploaded a video. Because of this additional use case I could integrate Facebook and Twitter notifications when an upload completes successfully. With this additional value provided by the app it would be more likely to sell and potentially for a higher price.
Before declaring your application you’re selling as finished work through an activity to think of who your customers are and how else you can simplify problems that give them trouble or that they have to spend additional manual time doing.
Develop the application for the customer
After identifying the business requirements of your application which is the customer problems you are going to solve, then it is time to design and implement the code. Going through a thorough design phase before coding will allow you to create code that will be higher quality and more extensible for future use cases if you chose to scale and improve the application over time.
In addition to having well working code that runs efficiently; since this is code you plan on selling it should also be created in a way that the customer will enjoy your application. You can do this through good documentation and customer experience. The next sections will cover this in more detail.
Ensure you deliver a thorough customer manual
When thinking about selling your own code think back to times you have bought application and what your expectations were. Normally you’d read through a help manual, work through a tutorial, and just play with the application yourself and figure things out on your own.
A good thorough help manual for all of the features of your application will help your customers get started quickly with the app and make them happy. This will also reduce customer support that you will need to provide to a confused and frustrated customer. Also remember anytime a customer PAYS for something they will also likely expect some kind of customer support. Depending on how extensive your application is you may consider telling them upfront this is a “use-as-is” application. Customer’s may be scared by this but if you are a small developer and not charging very much for your initial releases it should be a reasonable support model.
Focus on a quality customer experience
Having a good customer experience will make or break an application that you plan on selling to people. A customer that doesn’t know what the app is doing when they run it for the first time will be one that instantly asks for a refund.
Your command line interfaces should give clear instructions to the user and also provide instant feedback when the application has either succeeded or failed a feature. Failure messages should give details to the user what went wrong and how to fix it. For instance if an upload fails from bad credentials you should tell them that and where to go to update it if they are stored in a file. Or if an api calls let them know there was an error with the network connection and to check they are connected to the internet or to try back to the server site later or how to check if the server is up and valid.
Providing clear failure messages will require your application to have extensive exception handling with good logging and display messages. Think through the edge cases or the unhappy paths that your app may have and how you will present this to your customer.
If you are creating a GUI for your application you should ensure your application has a clear simple design and the buttons make sense. Noone likes looking at a UI that is a bunch of buttons in random places where you don’t know what the buttons do unless you are a trained airline pilot. Also make sure you are updating text areas or using toast message to give feedback of the application state to the user.
Package your application into an executable file
Now that you’ve came up with the idea, designed the app, implemented the code, and created the documentation and UX now it’s time to zip up your code and sell those tar files right? Well you could ship this code if you don’t care about someone taking it, improving on it, and reselling your hard work. Or you can post it to GitHub and make it open source as well. But since this article is about SELLING your python application you’re probably not here for the freeware model.
To help protect your applications intellectual property you can assign it a private license meaning the code can’t be modified or even redistributed. This is just a text file and not a police man shipped with your app to actually stop them from doing that. Without a way to continually search the internet for your code then this probably won’t work as well as you want it to.
Another option is to compile your code into an Exe file which will package all your code and the python runtime so that people can run your code on their applications by running the file. I believe code shipped this way can still be decompiled but this requires effort and knowledge that will at least stop basic users from being malicious with your code.
For most basic applications that can be created by a single developer using an exe compiler would be an adequate way to package your could. To do this you can use one of the following python libraries:
I don’t have a personal recommendation and I’ll be looking into the pros and cons of these libraries when I get to packaging my YouTube content manager and uploading application.
Protect your Software Application with license keys
If you are concerned with people freely distributing your application or selling it as their own you might want to consider a system to make license keys. You can use then use these license keys to check how many times they have been used when your application starts up. This will prevent mass distribution of your application.
However this will likely require extra support to deliver license keys and handle customer questions about these. You will also have to develop the code to check the license keys and verify their usage which would likely require a database to store registered keys. Using license keys in this way would also require a constant internet connection which may cause customers difficulty.
There may be other local ways to protect your application that would be worth looking into if you ship your application with a lot of useful functionality that you want to protect.
Market and sell your application
After the application is done you will need a way to tell potential customers about the application, what value it provides them to want to buy it, and a way they can get it from you.
Create a sales page
To be able to sell your Python application you can create a web page for your app where you will host the executable package. Then you could create a way for the customer to enter their payment info and after valid payment have it allow them to download the app. WordPress has plugins that you can use to do this for you simply.
Notify your audience if you have one
While working on your app be sure to send out tweet about your app as you are making it. As long as the tweets are interesting and it resonates the benefit it will provide to the customers you will likely get shares, retweets, and maybe even DMs to pre-order your app.
I don’t personally have a following on Twitter but I will be doing this personally once the POC for the YouTube manager has been completed. Subscribe to this article or to my twitter channel if you want to see how well this is working for me or if you want to track the status of the app.
I have seen this mechanism work for a few developers I’m following for an ebook release. The subject was on ways developers can make money which I’m already very familiar with and I was even half curious to pre-order his book. Spoilers, I didn’t.
Make a Facebook page and send out targeted ads
For people with a limited social following but a killer idea and application you can make a Facebook page for your product. After making the page also create a marketing video that demonstrates the functionality and value it provides. Then Facebook will allow you to promote your marketing video and select a target audience. There are a lot of blog articles out there on how to make Facebook ads so I won’t go too into detail on a developing blog. The main takeaway is if you are making an application that helps snowboarders catalog their boards and rides and automated planning snowboarding trips and booking lodging then your audience will be people interested in snowboarding.
A $100 Facebook ad campaign will get your product in-front of thousands of users. Here it’s important to be aware of click through rate when evaluating the success of your marketing materials and application. If 10000 people see your ad there might only be 50 people that click into it and of those 50 people maybe only 5 will buy your product. For a $20 dollar ad with this kind of sales funnel you would end up only being even, in which case you would need to try a higher price point on your application or better ads that would users would be more likely to click into. Or you may need to check your targets better.
Optimizing your marketing material will take experimenting but is a key part of selling your application and making it profitable.
Send follow up emails to get customer feedback for potential improvements
Lastly after getting sales be sure to follow up with your customers to check how their experience has been going. This will establish good trust between you and your customer to potentially sell more features or other similar applications to them. Their feedback can also help you make improvements to the original application that will allow you to sell it for a higher price. You can also ask for testimonials that you can publish on your sales page which will improve your marketing click through rates.
Creating and selling a Python app is definitely a lot of work that requires knowledge in other domains such as product management, web development for making a sales page, and marketing to help get your product in front of people that will find it useful. However this work will be worth it because once everything falls into place the application can potentially become a passive income source depending on the level of support you will provide the app.
I will be doing all of these steps myself and am eager to write a follow up article in the future how well this plan has worked for me.
Comment below if you have any other helpful ideas!
About Stefan Bradstreet
Stefan is a Senior Software Developer at Amazon with 8+ years of experience in tech. He is passionate about helping people become better coders and climbing the ranks in their careers, as well as his own, through continued learning of leadership techniques and software best practices.
Thank you for visiting!
Please remember if you found this content useful and would like to see more python and software development articles from us, help us conquer the google algorithm in any of the ways below:
If you didn’t find what you expected feel free to use the contact page and let us know ways we can improve or what would help you grow as a developer better! I am honored by every view and it takes a village to really make this great.