Just get it up and running first. A good Agile way of doing things for sure.
Frequent refactorings. Don't duplicate code, and don't mix concerns.
Favor functional composition over class based one off functions that have lots of "this." code in it.
Don't allow ideas and attempts to do something live longer than a few days without major progress and satisfaction of what is seen. If we have to continually tweak code because "I just can't get it to work right!" Then rethink the design, this is a huge warning sign we are on the wrong track.
The finished product should have ultra clean code, lots of reusable parts and all of it should be bulletproof. Don't allow any function to start work on anything that doesn't 100% meet the input parameters contracts. This includes rejecting null and undefined params. Also, make sure the output is proper, or that the callers check for undefined or null returns before using.