
The 3REE Stack: React, Redux, RethinkDB and Express.js - kohlikohl
http://blog.workshape.io/the-3ree-stack-react-redux-rethinkdb-express-js/
======
PhrosTT
I'm using React + Redux + Koa (+postgresql). The most annoying thing with
JavaScript right now is that Babel gives you all ES6 features in your front
end bundle, but node 4 only has a subset, so you have to remember when you to
stop using features. (No I don't want to transpile back end code).

~~~
odiroot
It's not really a problem now.

I use the auto-transpilation trick with Babel. You can see a small example in
my repo: [https://github.com/odiroot/songs-to-
spotify/blob/master/src/...](https://github.com/odiroot/songs-to-
spotify/blob/master/src/syncer.js)

Then in required modules you're free to use ES2015.

------
kking50
"However, out of this wonderfully frustrating evolution of JavaScript I think
things are beginning to settle down."

React - first commit May 29, 2013

Flux - first commit July 23, 2014

ExpressJS - first commit July 31, 2012

RethinkDB - first commit Oct 3, 2009

Yeah, I doubt it.

------
bryanlarsen
3 shiny new techs, and one clunky older one. Why use Express.js instead of its
successor Koa.js?

~~~
madeofpalk
In my React (+Redux) applications, Express only plays a very minor part of
being the entry point for the server.

Check this out
[https://github.com/joshhunt/reactapus/blob/master/src/server...](https://github.com/joshhunt/reactapus/blob/master/src/server/index.js).
Koa or Express.js wouldn't really make that much of a difference.

~~~
bryanlarsen
If there is no server side functionality, why not use one of the many react
static site generators?

~~~
fbonetti
Because this isn't a static site. Updates are being fed to the client via
websockets.

~~~
bryanlarsen
But neither koa.js nor express.js do websockets. You're holding up a site that
would probably be simpler without both koa and express as an example to say
that it doesn't make much of a difference whether you choose koa.js or
express.js.

~~~
jkarneges
We've built a pretty cool library for Express that makes it easy to do
WebSocket stuff through Pushpin (a proxy server).
[http://blog.fanout.io/2015/03/09/stateless-websockets-
with-e...](http://blog.fanout.io/2015/03/09/stateless-websockets-with-express-
and-pushpin/)

Not that this was covered in the article, but it would be a reason to choose
Express as the backend. It would be cool to build something similar for Koa
though.

------
LoSboccacc
Ah, the "Making debugging impossible because we're cool" kind of stack

~~~
GordyMD
I think if you take a lot at the motivations that Dan Abramov had for creating
Redux [1], you'll see that improving debugging was at the centre of it. Check
out his talk he gave at React-Europe. He basically is talking about improving
developer tools. The functional approach Redux takes allows for you to see
state transitions and replay actions - making it relatively trivial (compared
to say Angular.js) to understand how to reproduce a buggy state.

[1] [https://github.com/rackt/redux](https://github.com/rackt/redux)

[2]
[https://www.youtube.com/watch?v=xsSnOQynTHs](https://www.youtube.com/watch?v=xsSnOQynTHs)

------
eonw
yawn. another stack.

what are its merits?

~~~
baddox
The article is about that.

~~~
eonw
yea, i know, i read it. wasnt much there. already know what all the tools
did.... by why jump to this stack from one of the other 15 that came out this
year?

