Ditto. If your app is CRUD with auth, then, yes, fine (probably).
In our case we're running calculations across a large dataset on the back-end and serving up the results to the client. Due to the number of ways the data can be cut, pre-calculating everything anybody could possibly isn't cost-effectively feasible, so if we were going to stick all the business value in the client we'd have to load a bunch of the raw data into the client and then do the calculations there (in JavaScript!!).
Funnily enough that actually was the original approach, and it worked "OK" up to a point, except in Internet Explorer 11, which couldn't handle the memory consumption, and honestly it was dog slow everywhere else: both loading the data and doing the calculation. And of course this approach is a disaster on mobile.
Even if we could get calculation performance on the client that is better than the sum of time spent on the server plus latency, and maybe we could with WebAssembly or WebGL hacks, except that we'd probably have at least some incompatibilities to deal with (hey, starter for 10, IE11 again - who knew?), there's still raw data transfer to consider.
So now most of the smarts are in the back-end, and they'll stay there for the foreseeable future.