So much this!
Your code is literally[1] a spec for the solution to the problem your customers are paying to solve.
If you are small, you can't make it open-source.
Once you become big, then it doesn't matter if the source leaks.
If your customers need to trust you (when you're still small):
1. They are gonna require the code in escrow anyway! ... and
2. They'd be perfectly willing to sign an NDA to view the code.
Once you are big, some of the code leaks, well, you already have a beachhead of customers, you already have trust, etc.
But when you are small, your code is the step-by-step recipe for solving a problem that people are prepared to pay large amounts of money to solve. Why would you give that away?
---------------------
[1] And I do mean "literally", and not being hyperbolic.