In my post about struggling to learn React, I talk about how I’ve been frustrated by a lot of examples, tutorials, and projects where presentation code and business logic are all kludged together.

I’d love to see projects that feature a library of dumb, abstract components, which then are consumed by more application-specific components.

I’m very happy to read this article that articulates the desire to split things out into presentational (aka “dumb”) components that handle rendering the UI structure and container (aka “Smart”) components that handle all the wiring up and business logic.

Historically, I’ve been able to focus on building great UIs while not having to think too much about business logic, as that business logic was handled by another language and often another person. Now that everything is in JavaScript, people can (and do!) throw everything into one messy JS stew. Conventions like this make me hopeful that if I have to operate in React-land (which I do), I can find a way to focus on building great UIs without worrying about blowing up application logic in the process.