Convention driven framework for building front-end applications using React/Redux. Heavily opinionated and highly respectful. Built on React, Webpack, Redux and React-Router.
Lore's goal is to provide a framework that makes it easy to build React applications and is capable of supporting a mature real-world application. To understand how the framework makes it easier to get started with React, and what problems it's trying to solve, please see the intro video on the homepage or through this direct link.
If you're new to React, you may be interested in this video discussing the challenges building a React application from scratch as additional context on how Lore reduces the learning curve for React development.
There are a lot of demands on front-end applications as they evolve to support the growing demands of the user base. Lore's goal is to build support for many of those common feature concerns into the architecture. Below is a list of UI concerns Lore addresses or is planning to address, linked to their documentation page:
- Data Structure
- AJAX Abstration Tier
- Filtering
- Pagination
- Infinite Scrolling
- WebSockets (real-time)
- Visual Cues
- Optimistic Updates
- Dialogs
- Wizards
- Error Handling
- 404 Pages
The documentation for Lore is hosted at http://www.lorejs.org.
There is a tutorial for learning Lore on the website. It covers:
- Creating a new application
- Prototyping with mock data
- Routing
- Fetching data from an API
- Launching dialogs
- Authentication (logging users in)
- Authorization (restricting what users see)
- Resolving breaking API changes
- Pagination
- Infinite Scrolling
- Filtering
If you have any questions, feel free to create an issue. If you'd rather discuss over chat, there is a Lore Slack Team which you can join using this link.
Since Lore is still in active development, I'm going to list the things that have immediate focus here.
- [done] Add hook for polling actions
- [done] Add normalization example capturing code changes for v0.12
- [done] Remove router creation from lore core and place into router hook
- [done] Add ability to override redux store creation
- [done] Add ability to normalize API responses
- [done] Add ability to override connect blueprints
- [done] Add ability to override root component construction and DOM mounting
- [in-progress] Add Redux DevTools to new projects by default in development environment (with flag to enable/disable)
- Improve default production configuration
- Add normalization and publishing steps to Quickstart
- Publish v0.12
Dan Abramov's Hot Reloading with Time Travel talk from React Europe 2015 demonstrated an incredible (and unique) value proposition for Redux and the functional programming concepts it uses as a foundation. That functionality has since been packaged into a library called react-hot-loader, which has gone through two major versions, with the beta version for v3 currently in development.
While there are tutorials that demonstrate how to obtain that functionality in React applications (webpack tutorial, react-hot-loader tutorial) the library itself does not currently work with react-router, which is why it's not included as part of the development environment for Lore.
Once those issues are resolved, Lore will investigate including as a default development behavior, similar to the way the Redux DevTools are included by default starting in v0.12
.
- React for a brilliant componentization library for JavaScript.
- Redux for a simple and expressive React architecture.
- React Hot Loader/React Transform for making UI development a more fun and magical experience (even if it is about to be sunset).
- Sails for showing that a framework can be both strongly opinionated and highly respectful.
- Lerna for providing a sane solution for managing a monorepo.
- Storcery for providing the environment, discussion and impetus that gave birth to Lore.
- April Zero for showing just how beautiful web apps can be. Your creation continues to inspire.
- Backbone for a wonderfully well-thought-out interface for an API abstraction tier.
- Redux-Auth-Wrapper for demonstrating a simple and expressive way to handle authentication and authorization concerns.