2. Once it's a generalized product, how will that first client feel about being told that a new feature they want won't be built?
3. As a corollary to #2, the first client will also look at it as something they purchased, not a service that you now offer to them. They'll demand things and the business will need to have the fortitude to tell them no, and most businesses can't (or won't) do this.
It's very hard to get a scenario like this to work out where people are still happy with the arrangement 2-3 years in the future.
You end up, in practice creating a individual bloody application for each client.
(Not a coder, more a manager who created specs and tried to shield the coders from the worst of the shit-storm).
This is one of the things that always makes me groan, along with 'and you can learn x technology along the way!' >:|
Can you tell me why? Sometimes, asking a client for 50k instead of 80k with a "spin-off" agreement can pay to both parties. The client can get long-term support with new features without the need to pay for it.