We will always need presentational logic in our end-user applications, and it should probably always be separated from application logic. But where developers encode this logic continues to change. A quick note on a few things that drive where logic lives – using CSS as an example, but maybe it can be extrapolated to other things like infrastructure configuration.

A primer. CSS is Turing complete, but it doesn't behave like most other languages (no native package support, and hard to share styles between rules).

Past the obvious constraints: i.e., that it must be sent and parsed by the client, how do you decide where it goes?

CSS may be a boring example, but the more interesting one (for me) is where infrastructure configuration goes. Is there a Tailwind-like solution that helps consolidate infrastructure and application code?