The document discusses Grail, a React-based framework for building isomorphic JavaScript applications. It describes the key components of an isomorphic app as rendering, routing, business logic, and resources. Isomorphic apps can run the same code on both the server and client for performance, maintainability, and testability benefits over single-page apps. Existing isomorphic solutions include Meteor.js, Rendr, and Derby. The document provides examples of isomorphic rendering, routing, and business logic and notes differences between implementing these components on the client versus server. It highlights a TodoMVC demo built with Grail.
6. Isomorphic rendering
React
converts the state into DOM
state
virtual
dom
DOM
describe how your state is rendered declaratively
and make your business logic manipulate state
instead of view
8. How the isomorphic app
should look like?
• rendering
• routing
• business logic
• resources
router business logic stores
view
resource
router business logic stores
view
resource
11. How the isomorphic app
should look like?
• rendering
• routing
• business logic
• resources
router business logic stores
view
resource
router business logic stores
view
resource
12. Isomorphic business logic
• get Items
• render Screen
• validate incoming Item
• save Item
• get updated Items
• handle Error is save failed
• render Screen
Fetch data Save data
13. Isomorphic business logic
• getItems
• renderScreen
• validateItem
• saveItem
• getItems
• handleError
• renderScreen
Fetch data Save data
16. How the isomorphic app
should look like?
• rendering
• routing
• business logic
• resources
router business logic stores
view
resource
router business logic stores
view
resource
REST
API
21. there is no server
- Do not try and code the
isomorphic backend.
That's impossible.
Instead... only try to
realize the truth.
- What truth?
- There is no server.
22. • rendering
• routing
• business logic
• resources
router business logic stores
view
How the isomorphic app
should look like?