Hacker News new | ask | show | jobs
The 3REE Stack: React, Redux, RethinkDB and Express.js (blog.workshape.io)
81 points by kohlikohl 3917 days ago
5 comments

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).
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/...

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

You can use Babel with node on the back end. See https://babeljs.io/docs/usage/require/. Definitely not the most ideal solution, but it allows you to easily transition into ES6 when all the features land in node.
"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.

3 shiny new techs, and one clunky older one. Why use Express.js instead of its successor Koa.js?
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.... Koa or Express.js wouldn't really make that much of a difference.

If there is no server side functionality, why not use one of the many react static site generators?
Because this isn't a static site. Updates are being fed to the client via websockets.
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.
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...

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.

Fair point. I didn't really give this layer too much thought considering the focus of the blog. It could really be any Node.js framework.

Although saying that, if I had chosen Koa.js the stack would have to be called 3REK, or 3RKE :/

Ah, the "Making debugging impossible because we're cool" kind of stack
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

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

Dude, this is half the point of redux. Theres a debugger that lets you visually step through every state of the store and your corresponding app - https://github.com/gaearon/redux-devtools
Please don't post dismissive comments to HN. A substantive point about the impact on debugging would of course be welcome.
yawn. another stack.

what are its merits?

The article is about that.
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?