Philosophy

The intended audience and development philosophy behind Lore

Semi-Comfortable with Redux

This section is for people who are somewhat comfortable with React and Redux, and have some experience building web applications.

If you've already developed some comfort with React and Redux, then you know application architecture can be quite challenging, and there are a LOT of problems you have to solve for in a real application, many of which are not at all obvious up front. You may also know that Redux applications can contain a lot of boilerplate.

Unfortunately, it can also be a little difficult to find discussion and examples about how to address these challenges in real-world applications, especially since the code for most applications that we could learn from is kept in private repositories.

Lore has two core goals if you find yourself in that growth stage between starting out and gaining a solid comfort with building applications with Redux:

  1. The first is to demonstrate what's possible with Redux.

    At it's core, Lore is not "some new way of developing web apps". Lore IS Redux. But it was developed from the perspective of looking at a dozen plus applications built over a series of years, and asking the question "Is there a set of patterns that can be applied to Redux that can solve every problem across every one of these applications?".

    Once it became clear that the the answer was "yes", the followup was was "Is there also a set of conventions can be applied to completely eliminate the boilerplate, and place the entire development focus on React?".

    The result of those two questions is Lore.

  2. The second goal is to demonstrate a cohesive and holistic architecture that is able to solve for all common application concerns.

    The fact is, most web applications are incredibly similar with respect the problems the application architecture needs to solve for; things like pagination, error handling, caching, and API communication. The real differences (and the real value) lie in the specific UI/UX concerns each application needs to solve for.

    But too often we get bogged down in the architecture, just trying to get something to work, and it takes away precious time from creating a better product.

    Lore is intended as a proof of concept to demonstrate that most web applications are not unique snowflakes; they're the same set of concerns, just dressed up in different clothes.

  3. With people, it may be what's on the inside that matters the most. But with web apps, it's very much the opposite. User's don't care about your architecture; they care about the features and user experience you provide, and how quickly you can add new features to improve the value your product provides to them. Good architectures can be immense enablers for rapid development, especially ones that solve for problems you don't yet have but likely will (needs like cache invalidation or websocket integration to sync data across browsers in real-time).

So if you want to see what's possible with Redux, Lore might be of interest to you. And if you want to learn how it all works, and about the reasoning behind the patterns Lore uses, you can check out the architecture documentation for an explanation and demystification of the framework.