Attempt to bring Elm's Architecture to JavaScript.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
examples
src
test
.babelrc
.gitignore
README.md
index.html
package.json
webpack.config.js

README.md

Olmo

This is an attempt to port the core ideas of The Elm Architecture to a JavaScript library. Although our goal is to develop a real-world application with it, we don't plan in releasing Olmo as a "yet another..." but sure keeping it up to date so you can use it as a starting point if you find it useful.

Why?

  • We find Elm's architecture more easy to follow than Redux's.
  • There's a standarized interface for effects.
  • Rendering is no different and is treated as an effect. Actually Olmo don't take any action in which library it uses for rendering, that's your app's decision.
  • Although we think CycleJS is awesome, we found that break a Cycle app as a main function into subcomponents might be kind of difficult, at least for us, and Cycle don't take any explicit action in that direction to guide us.

Examples

Run any example with npm run ex<number of the example>, eg: npm run ex1

  1. Simple counter / demo
  2. Counter pair / demo
  3. List of counters / demo
  4. Fancier list of counters / demo
  5. Random Gif Viewer / demo

Testing

Run npm test or npm run test:watch.