Smart contracts with NEM

As I understand NEM doesn’t keep smart contracts on chain but rather keep it outside or even more specifically it doesn’t care what is outside. As I completely agree with this as ETH approach seems to me fundamentally wrong, still people would like to have some support for custom smart contract with NEM. Can someone explain what’s the best approach for smart contracts and NEM right now w/ and w/o using sidechains?