We're developing a web app that visualizes financial data. We have our first customer, but hope to get more. The terms are that

  1. the customers pay a setup fee, to customize the app for their needs
  2. the customers pay a monthly fee to license the app
  3. the customers install and host the app on their own servers

(Some details: the server just requires a simple node.js installation. There is no database required. Everything is easily installed via npm. All the modules used a open source.)

Our source code is not public, but it doesn't need to be obfuscated or hidden from the customer.

My Questions:

  1. How should we distribute the source code to customers? GitHub seems logical, with the idea that customers just use git to deploy and update. But a customer should only have access to the source code with the customizations made for them – not for other customers. What's a good approach to setting up repositories for distributing these different versions? Where do those live in relation to the development branch?

  2. How do we go about licensing the code?

That's a big question. Hopefully not too big. Partial answers or links to articles are welcomed. Thanks...

  • 1
    Do you really modify your system for the customer or do you use a core of the system and modify settings/layout etc. for example? Is there a clear separation between customer specific code and the system itself? Commented Jul 25, 2012 at 8:16
  • For licensing, and since you want the client to pay a monthly fee, you should probably just sign a contract that specifies that. Get a lawyer to write one that fits your needs. Commented Jul 25, 2012 at 10:04
  • Thanks everyone for the replies so far! luc-franken and @elyusubov: The per-customer modifications don't involve modifying the core of the app. All customization is done via inclusion of external files (config, js, css) and setting of environment variables. So a separate branch per customer is probably not needed.
    – meetamit
    Commented Jul 25, 2012 at 11:31

1 Answer 1


You need to have a separate branch of customized web-app project per each client. Because, it sounds like all your customization are done particularly for a specific client.

Example of licencing that might be good to look are listed below:

Edit: Depending on your country of residence the software licencing may have different regulations. I would also strongly advice to contact a lawyer who is specialized in licencing matters.

  • CC is not generally recommended for software. And the version you linked to can only be used in non-commercial settings, which I'm thinking meetamit's clients will not be too happy about. Besides, it doesn't ensure that the client needs to pay a monthly fee for using the application, which was specifically required by meetamit. Commented Jul 25, 2012 at 10:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.