As the author of the code, you can do whatever you want with it, including selling it, even while you offer the code to the general public under the terms of Gnu's GPL. As long as the project doesn't include code contributed by other people, you always have the option of licensing it to other people (paying customers even) on whatever terms you like. The GPL is just the license that you've chosen to grant to the general public (the GP in GPL).
After you start
mixing in code from other people, that gets harder. But, the beauty of the GPL is that people can collaborate on a project knowing that none of them is in a position to take advantage of the others' labor.
Also, the GPL does not necessarily prevent closed-source plugins. The GPL only prevents closed-source derivative works. If someone has already created a plugin for another FE, then the plugin is their original work, not a derivative of your work. There
might be a grey area regarding plugins that include header files (from your project) that are GPLed - I'm no lawyer though.
If you want to make that sort of thing simpler, consider offering the plugin header files (or base classes, or whatever) under a less restrictive license like BSD's. Plugin developers can then mix their code with that code with no worries. End users can then mix your GPLed application with their closed-source plugin, and everybody's happy.
Bookmarks