This document introduces Arch, a framework for building React applications that uses an immutable central state managed by cursors. It provides routing, isomorphism, and tools to set up a React app quickly with hot reloading and a Node.js server. The presenters explain how Arch implements an observable cursor to manage state, generates UIs from that state, and allows business logic through observers.
14. T
2 3 4
A B C
X Y
1
42
Solution: a cursor
c1 = cursor(T)
c2 = c1.get(3)
c3 = c2.get(A)
v3 = c3.deref() # => “A”
c3.update(“42”)
c4 = c2.get(A)
v4 = c4.deref() # => “42”
v3 # => “A”
15. Cursor
• Reference into a data structure
• Lightweight: reference + path
• Dereferencing gives local copy
• Updates replace entire backing data
• Persistent data structures make it efficient
21. Central state
• Advanced features: Persistence, Undo / Redo
• Isomorphism
• Easy testing and debugging
• Simplicity
22. Things you want
• Immutable modular observable central state
• Routing, Isomorphism
• Quick and easy setup
• Toys: CLI, generators, server, hot-loading, …
to build a React application