Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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...

share|improve this question
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? –  Luc Franken Jul 25 '12 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. –  André Paramés Jul 25 '12 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 Jul 25 '12 at 11:31
add comment

1 Answer

up vote 3 down vote accepted

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.

share|improve this answer
    
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. –  André Paramés Jul 25 '12 at 10:00
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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