Should I Open-Source My Python App?
Key Takeaways
The video discusses the pros and cons of open-sourcing a commercial Python application, considering factors such as business models, competition, and community contribution.
Full Transcript
hey guys I got a Python open source question from Reuben on YouTube awhile ago I just wanted to cover it in this video so Reuben says quick question what if I plan on selling my desktop GUI should I worry about creating more competition for myself if I put the code on github so this is a question about open sourcing a commercial project I assume and whether or not that's a good idea so my thoughts are Reuben I would be very careful be very careful with that it sounds like you're actually selling the product and you're not selling support contracts right like for example this is the business model I guess that people made work with with Linux where well the kernel and and everything is is available for free essentially but companies and and consumers are in some cases paying paying distributions money to get the support you know this is how Red Hat works and how how people have been able to build successful business models in the open source world so I'm not saying this is impossible but it's also a completely different game so if you're selling this app right now let's say on your website you know it's a digital download people pay you a one-time payment they can download the application and then just use it on their computer because you said it's a GUI app so I'm assuming this is for download this is not a SAS application or software as a service application this could you know you could quite possibly create a competitor for your own application for yourself and I don't really see based on the information you gave in the context that you gave I don't really see the benefit of open sourcing this application you know it makes sense to open source it if you want to use it as a portfolio item of sorts I mean you wrote the app you know I'm not sure if it's if having the source out there is is so important you know it still could be an impressive project I'm not sure if that's a valid valid argument for open open sourcing it you are hoping to get contributors from the community you you know maybe you're hoping that people are gonna be submitting patches and maybe making improvements to the app and you can continue to sell it that would be a more valid reason but how likely is that right how likely is someone else to contribute to to a commercial product and essentially for free I'm not sure of that if the right incentive is there sure could you know could be possible again if it's more like a support support kind of situation where you're selling out the support or selling the support and not the actual product then this could work better but again like I feel like it's not you know based on what you said it's probably not like a valid reason to open sourced as as well now another reason could be that you just want this to be open source because you believe in what what that stands for and I can very much relate to that you know I have a couple of open source projects and I don't get paid anything for them I maintain them for free creates a lot of work you know reviewing stuff giving people feedback on their code people get angry if if I let their pull requests sit there for too long and and it you know it's it also creates work but you know I really I benefited from open source so I believe in giving back to the community and you know other ways would be to donate money but I'd rather coat some stuff and then just just give that away so so I can very much relate to that kind of thinking but on the other hand if you if you're building you know if you're building your business around this stuff I mean I'm you know I give up actually I give away most of my teaching material I give away for free here on YouTube and on my website and you know in social media and all these other outlets like I create a ton of free content that I just give away but there's some stuff that is closed source in that sense right where it is it is paid training and it is more in-depth stuff and it is things like things like my book or you know the managing dependencies course and and products like that I don't open sourced and I don't give them away for free I you know that's how I feed my family I want to make some money I want to you know this is what keeps the business alive I'm trying to give away as much as I can because I want to you know just make the Python community better but I also got to make a living somehow so I feel like this is really similar to to this situation here where you got to decide you know which parts where does it make sense to give these things away for free or open-source them and where where do you want to keep them close source because you're gonna invite competitors and in this case you know based on what you said I would probably be careful about open sourcing it because I don't see a huge upside to it and I only see a downside if this is like a one-off digital purchase product that you're selling right now I don't really see the upside of open sourcing it now if you're selling support contracts that could all change you know I'm not saying there's not a business model where this would make sense but based on the context that that I think that is implied here I probably not do it I would maybe do it long term if you stop maintaining the application or you know the it's it's it's outdated and you stopped selling the product at that point it would be sort of a nice gesture to open-source it so that that I can continue to to to exist in the future and other people can maintain it if they want it I mean okay so I just thought of one reason like a valid reason if if you open sourced it and the reason would be that you can say you know when you're selling your app you can say hey you will always let's imagine this is some kind of backup tool like I'd be really concerned about not having the ability to access my data at a later point in time and if if the author says you know if you say well this is open source you can then I would feel more comfortable being able to pull the source and make changes you know and make sure that I can get this to work again the future hire someone to do it if if you ever stopped maintaining it so that this could be like a small reason to like D risk it for your customers but you know you could also offer you know you could offer people to pay extra and then buy the source code that way and again that might also invite competitors and stuff but you know I probably not open-source it at this point because it's very hard to take back once it's open source it's gonna get for it it's gonna get copied you'll never be able to make it close source again it'll just be out there so yeah probably would be like I would be a little bit careful with that in your shoes probably not do it for now all right I hope this advice was helpful let me know how you decide were you gonna do and best of luck with your app yeah so if anybody else has a question if you have a question that you would like to get answered in a future video and just leave a comment below I'll try and do as many videos as I can here and and just give out free advice answer answer these questions because I really enjoy it and spin it's been pretty cool interacting with you know with everyone in the community and getting feedback and just getting better at doing these videos like actually I feel like I really enjoy you know doing these videos and just getting better at talking into the camera over time at least I hope I'm getting better anyway so click the like and subscribe button and stay tuned for next video after PI thinking
Original Description
https://dbader.org/python-tricks ► Improve Your Python Skills, Bit by Bit
Should you release your commercial Python app as open-source on GitHub? This is the question I got from YouTube commenter Ruben:
"What if I plan on selling my Python desktop GUI app, should I worry about creating more competition for myself if I put the code on GitHub?"
In this video I'll share my thoughts on the matter. In short, I think you should be careful about open-sourcing a commercial project. If you plan on selling this app it can be a dangerous move to make the source code to your application available as open-source.
Of course there are successful open-source business models (just look to the Linux world, Red Hat etc.) but if you plan on selling a standalone GUI app and can't make money from support contracts and other revenue streams I don't think releasing the code as open-source is a good idea. Watch the video to hear why.
What do you think? Should Ruben make his Python app open-source or is he better off keeping it closed-source for now?
FREE COURSE – "5 Thoughts on Mastering Python" https://dbader.org/python-mastery
SUBSCRIBE TO THIS CHANNEL: https://dbader.org/youtube
* * *
► Python Developer MUGS, T-SHIRTS & MORE: https://nerdlettering.com
► PythonistaCafe – A peer-to-peer learning community for Python developers: https://www.pythonistacafe.com
FREE Python Coding Tutorials & News:
» Python Tutorials: https://dbader.org
» Python News on Twitter: https://twitter.com/@dbader_org
» Weekly Tips for Pythonistas: https://dbader.org/newsletter
» Subscribe to this channel: https://dbader.org/youtube
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from Real Python · Real Python · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
A better Python REPL – bpython vs python interpreter
Real Python
Introducing large-type.com – A Utility Website
Real Python
Reading Hacker News Without Wasting Tons of Time
Real Python
Forward References and Python 3 Type Hints
Real Python
Using Sublime Text as your Git Editor
Real Python
Python Code Linting and Auto-Complete for Sublime Text
Real Python
Make your Python Code More Readable with Custom Exceptions
Real Python
Write Better Tests with Sublime Text's Split Layout Feature
Real Python
How to Use Sublime Text from the Command Line
Real Python
Rename Variables with Multiple Selection in Sublime Text
Real Python
Sublime Text Settings for Writing PEP 8 Python
Real Python
Write Cleaner Python with Sublime Text's Indent Guides
Real Python
Sublime Text Whitespace Settings for Python Development
Real Python
Function Argument Unpacking in Python
Real Python
Python Code Review: Debugging and Refactoring "Conway's Game of Life" + Automated Tests
Real Python
Using "get()" to Return a Default Value from a Python Dict
Real Python
A Python Shorthand for Swapping Two Variables
Real Python
Python Code Review: Refactoring a Web Scraper, PEP 8 Style Guide Compliance, requirements.txt
Real Python
Click & Jump to Test Failures from the Command Line (iTerm2)
Real Python
Setting up Sublime Text for Python Developers
Real Python
Sublime Text + Python Guide Overview
Real Python
Python Code Review: Adding Pytest Tests to an Existing Python Web Scraper
Real Python
Type-Checking Python Programs With Type Hints and mypy
Real Python
A Shorthand for Merging Dictionaries in Python 3.5+
Real Python
Python Code Review Flask Web Security Tutorial + Virtualenvs, requirements.txt
Real Python
My Python Code Looks Ugly and Confusing – Help!
Real Python
Setting Up a Programmer Portfolio/Developer Blog – How To Get Started
Real Python
Do I Need a GitHub/GitLab/Bitbucket Profile as a Developer?
Real Python
Programmer Portfolio – Example and Walkthrough
Real Python
How to Get Your 1st Speaking Gig at a Tech Conference
Real Python
How to Build Your Public Speaking Skills as a Developer
Real Python
The Object-oriented Version of "Spaghetti Code" is "Lasagna Code" ?!
Real Python
Setting up Sublime Text for Python Developers – Lesson #1
Real Python
Cool New Features in Python 3.6
Real Python
"is" vs "==" in Python – What's the Difference? (And When to Use Each)
Real Python
Emulating switch/case Statements in Python with Dictionaries
Real Python
Python Function Argument Unpacking Tutorial (* and ** Operators)
Real Python
What Code Should I Put On My GitHub/GitLab/BitBucket Profile?
Real Python
A Crazy Python Dictionary Expression ?!
Real Python
String Conversion in Python: When to Use __repr__ vs __str__
Real Python
Method Types in Python OOP: @classmethod, @staticmethod, and Instance Methods
Real Python
Optional Arguments in Python With *args and **kwargs
Real Python
Python Context Managers and the "with" Statement (__enter__ & __exit__)
Real Python
Installing Python Packages with pip and virtualenv / venv
Real Python
"For Each" Loops in Python with enumerate() and range()
Real Python
Python Code Review: LibreOffice Automation and the Python Standard Library
Real Python
Managing Python Dependencies With Pip and Virtual Environments – Lesson #1
Real Python
Python Tutorial: List Comprehensions Step-By-Step
Real Python
Leveraging Python's Implicit "return None" Statements
Real Python
What's the meaning of underscores (_ & __) in Python variable names?
Real Python
Python Data Structures: Sets, Frozensets, and Multisets (Bags)
Real Python
Writing automated tests for Python command-line apps and scripts
Real Python
How to find great Python packages on PyPI, the Python Package Repository
Real Python
Immutable vs Mutable Objects in Python
Real Python
PyPI vs Warehouse, the Next-Generation Python Package Repository
Real Python
pep8.org — The Prettiest Way to View the PEP 8 Python Style Guide
Real Python
My Experience at PyCon 2017 in Portland
Real Python
Pylint Tutorial – How to Write Clean Python
Real Python
"Reverse a List in Python" Tutorial: Three Methods & How-to Demos
Real Python
Python Refactoring: "while True" Infinite Loops & The "input" Function
Real Python
Related AI Lessons
🎓
Tutor Explanation
DeepCamp AI