In thinking about this, I realized that most of the code in my app — in almost any app — is just some code. Some view controllers doing their things. Animations. Layout. Action methods. Caches. Web views. If that’s true, then why not make our apps open source? Well, we’re not going to. But I can’t help but wonder what it would be like if developers — even developers of for-pay apps — routinely made their apps open source. (Perhaps with a license that says you can’t just re-skin it and sell it as your own.) People would still buy the apps. But I stop there, at wondering. I’m not advocating anything — just thinking about what would happen. It could be interesting. But it sounds scary.
Publishing as both a paid app and an open source project is something that I’ve been thinking about for a while and right now I have the freedom to do this with a side project at work. I almost want to do it just for the experiment.
Someone republishing the app as their own is more than annoying, but I know that there’s only so much you can do to prevent this and there will always be rule breakers. So my initial concern doing it with this particular project isn’t so much about lost revenue but more that someone who pays for the app feels misled because they a) didn’t know the source was available to build themselves and would have otherwise gone that route or b) the project is made open source after it’s made available for purchase and it comes off as disingenuous. The project has been mostly used in software development (by both developers and designers) during its own development, so I’m not sure how likely the former case will be. The latter can be mitigated by making it clear that if the source isn’t available at launch then it will be soon.
I have another ongoing concern though: what happens when people contribute to the open source project? They rightly deserve credit for their work, but how does money fit in? Of course we can write the license and contributor agreements in any which way. Even if nobody contributed back to the project I think I would still want the source to be available to demonstrate how certain problems were solved. We aren’t an “open company”, although transparency is one reason to make this source available. Is there a way to frame this that doesn’t feel like potentially profiting off of free work?