"What if my technical decisions lead to yet another unmaintainable React project?"


The unopinionated nature of React is both a blessing and a curse. It grants you the freedom to make your own decisions, but it also lacks conventions to rely on. Unfortunately, early decisions in a project can result in an unmaintainable codebase in the long run, costing you time and money... and maybe your reputation.

While we do have some conventions as React developers, such as the "feature-driven" folder structure, they only address a small portion of the complex systems we build. Creating a good architecture involves more than just organizing code.

  • Where should you place (business) logic? Inside components, custom hooks, or in a dumping ground utility folder?
  • How can you isolate parts of your system, so a simple API response change doesn't require modifying hundreds of components?
  • How do you prevent your codebase from falling apart when a crucial library is no longer maintained?

Surely, there must be a better way!

We can learn from the classics

Over the decades, numerous scalable software architectures have been developed by highly experienced developers who are much smarter than you or me. These architectures were designed for large, scalable, and resilient applications.

They save time and money (and may even get you a promotion). Many backend frameworks have embraced them, and even Angular does a commendable job in that regard. So why not React?

Adapting a Clean, Hexagonal, or Layered architecture to React apps with their components, hooks, and contexts is not a straightforward task. The terminology alone, with concepts like "entities," "use cases," "controllers," and "adapters," can be overwhelming if you haven't experienced a proper architecture before.

And when you look at the images associated with these architectures, they don't seem to be built for our modern web apps, do they?

    Is this level of complexity truly necessary?

    A simple and pragmatic approach to architecture for React apps

    Introducing the "Pragmatic React Architecture"! This upcoming workshop will teach you how to build your React apps in a scalable and maintainable way. You'll gain hands-on experience by refactoring a typical codebase to adopt a proper architecture loosely based on Bob Martin's Clean Architecture.

    The workshop follows a step-by-step approach, focusing on practical implementation rather than bombarding you with lengthy and intense theory sessions upfront. You'll learn to identify the parts that are most valuable to you and your project, enabling you to create a solid architecture without unnecessary complexities.