Project sharing: Breezy - PJAX and opinionated state for Rails React Redux

Hi all,

I wanted to share something I’ve been working on: Breezy It’s the “rails way” to integrate React, Redux, and Rails. It’s actually a fork of Turbolinks 3 and JBuilder.

While Turbolinks requests the next page’s HTML and does a <body> replacement, Breezy requests the next page’s props (written using JBuilder-like syntax) and does a replacement in your redux state. Here’s how a page visit would look like:

this.props.visit('/posts/1')

And here’s a preview of your views:

  views/
posts/
index.js.props
index.jsx
show.js.props
show.jsx

You can do a lot of things like fragment deferment, fragment fetching, preload multiple pages in a single request, instaclick-ing. There also room for custom reducers when you need to do something more complicated.

There’s the usual url helpers, i18n helpers, routes.rb, and jbuilder-ish templates, but now I get the benefit of awesome React component libraries like Polaris. The best thing is, at the end of the day, it feels like a vanilla Rails workflow with just the right amount of Javascript.

Feedback welcomed!

Yay! Nice.