For other jobs, I submit work for payment, and maybe some little changes, then approved by client.
But for this job, the specification is not clear so I'll need client test it frequently even though it's far from done.
So I'm worried about my payment even though there is escrow.
I already ask an upwork support but currently she is not answering anymore (maybe her shift already ends?).
I asked: "Should I click submit work for payment even though the job is far from done?", she didn't say yes.
I asked: "Should I send the unfinished result via chat?", she didn't say yes.
She suggest to divide to several milestone but I don't think that's a good idea because it's still not clear.
To make it worse, she said: "Worst case scenario is if the Client cancels a contract in the middle, right?".
- What is the safest solution for me to let client test the game?
- Ignoring client capability to download, if I put the game on my website, do I break upwork rules?
To deter the client from code theft, you may be able to get away with obfuscating the JS during development using something like https://obfuscator.io/. Just make sure they understand and agree (in Upwork chat) that the final product will have a non-obfuscated source code.
I don't see how putting the game on a website (dev environment) for the client to test would be a violation. To me, that seems like a safer bet than sending an incomplete file. An incomplete file means they have "leverage", as in they could say "client never delivered" and show the incomplete game, even if you really sent the finished work (say, outside Upwork).
If it were me, I would not send the file, and not click "submit work" until you are sure the client is happy and they have "signed off" on what you have built. Instead, have them test it on your dev environment.
The purpose of Upwork escrow is NOT to hide your work product until payment has been released, or until the work is complete.
I always provide my clients access to the work continually, from the beginning of the contract.
I don't like the idea of withholding source code or obfuscating it.
If you are uncertain about whether or not you can trust a client, then the sensible thing to do is to break up a project into multiple separate milestones or contracts.
Do part 1, deliver it, get paid. Part 2, deliver it, get paid, etc.