A customer asked us to build a small web application. We charged them to develop it and had a clause in the contract which stated we "reserve the right to re-use any code written for this project."
1) Another customer recently approached us for the exact same system. Is it ethical to simply rebrand the current app and resell it? Our current thought is to charge the new client a higher monthly cost but less upfront.
2) Customer 2 requested some additions to the system. We plan to charge them for these extras
a) If useful, should we add these features to the application for customer #1?
b) Can we provide these features as an option for later customers as part of for an extra cost?
I guess to sum up the question, how do you handle the IP and resale of custom web applications requested by clients? These clients are in the public sector (i.e. not competing.)
Sell it to both customers!
If customer #3 and #4 come along, sit down and sketch out what 'your product' looks like. Figure out what the basic features need to be to offer an off-the-shelf (software?) product. Then, hire a business development partner, and find customers #5 through infinity.... If it's a big enough need you may be on to something.
But to specifically answer your question #1, there is nothing unethical about reselling a product that you own the rights to. I worked for a market research startup where we would be commissioned to do market research by a client, and then we would resell the results to anyone that would buy them. As long as you own the rights to the code (it sounds like you do) you're in great shape.
To answer #2, have customer #1 fund your project/new feature's development... there's no problem with that. Only you can answer whether the new features make sense as an addition to your initial/central platform.