I have an open source project which consists of back-end, web and mobile apps. I frequently get requests for customisation and branding for the apps. It's a good balance between having control of the core functionality in your own hands and making money by developing apps for someone else. It's also much easier to make adjustments to existing codebase than developing a completely new app from scratch.