(1) Reaching some place where "you can't get here from there" in terms of functional requirements (e.g. there is some cliff of app complexity where it either gets much harder<p>(2) Being stuck with non-functional requirements. For instance you have a form that works but you think it is ugly, not compatible with your brand, etc. This can be a blessing in disguise because if bikeshedding is impossible there won't be any bikeshedding.<p>(3) A modern NoCode system is likely to be a SaaS. The plus of this is that you are also absolved of running a server but the minus is that they can go out of business, raise their rates, reduce your server power, or otherwise change the deal.