Show HN: Reactuate – a React/Redux stack with a focus on domain-driven design
github.com
github.com
While it's nice to have small dependencies that you can swap out over time as your use case evolves or as the ecosystem progresses, most of the time I'd just like to use the "standard stack" for a given platform. As someone who primarily uses Angular, one of the main benefits I see of Angular's 'kitchen-sink' approach is that you get a lot of standard functionality right out of the box (e.g. routing, i18n, animation) without having to research the best community package for that particular functionality. However, I think it's the narrow focus of React on the 'View' layer that's made it so widely adopted, because it plays well with an existing stack.
Having a project like this seems like the best of both worlds - libraries like React can focus on excelling in a single concern and developers still get a curated set of standard functionality so they can setup a complete web app.
(I expect this comment won't be too popular, but I'm happy to take the flak.)
The action is defined like this:
const IncrementCounter = createAction(domain, 'IncrementCounter',t.maybe(incrementParameter))
(A oneliner)
redux-router is another project which solves the same problem. However, it's far more complex. Take a quick look at the code for this library—it's extremely minimal. redux-router is much bigger and more complex.
That said, redux-router is a fine project and has features this doesn't provide. Use it if you like it better.
YMMV but for me React's good parts did not overcome the frustration of feeling like I was building on sand.
I don't mean to say React is unstable - React is great. It's just that the ecosystem and tooling is too ephemeral for me. Life this too short to worry about whether x, which I incorporated into by processes yesterday, will be supplanted by y tomorrow.
I'm playing with the server side rendering nowadays, and it is promising. It will be easy to use and nicely integrated with the whole ecosystem.
This blog post is not short, but you can get a view, what is the core team's plan for the next couple of weeks, and how the framework evolve further this year. http://emberjs.com/blog/2016/01/23/core-team-face-to-face-ja...
However, if you have a couple of level deep nested structure, nested components, React perform very badly. Probably Ember.js will never be the fastest framework on todo list performance test. However in complex application, it is fast, or maybe faster than any other solution. The Glimmer Engine 2 is on the way, will be released in a couple of weeks with backward compatibility. So if you built an Ember.js app before, it will enjoy this performance boost as well. And improving performance will never stop, so it is just getting better, meanwhile the developer happiness is on the top, thanks to Ember ecosystem, the add-ons, the Ember-CLI, etc...
In most of the projects the importance of the speed of rendering a tiny component is insignificant comparing to the speed of the network, or to the importance of the management of model/serialisers/adapters, or to dealing with app router/services, or to the importance of testing and deployment.
Ember.js project's main goal is providing a complex solution, where the developer has to focus only to ship a product, building features and release it. Ember achieved this goal more than a year ago, the whole framework is matured, more production and corporate ready than any other solution out there at the moment.
A great presentation about how intercom.io can ship fast thanks for Ember.js: https://www.youtube.com/watch?v=fVwDuMGVhYY&sns=tw
Nice comparison of renderers: https://auth0.com/blog/2015/11/20/face-off-virtual-dom-vs-in...
I was once down-voted heavily on HN for saying the React ecosystem seems immature (this was about a year ago). A year later, it still seems like there's no consensus on how to build scalable apps with react.
> appendices
If there are any sane people left, please ignore these boilerplate kits. If you need React or a similar lib, and you know how to use it, you should probably research the libs available and pick your own front-end toolkit. There are no standards (that you can rely upon).
If you don't need this crap to show that your user is logged in, or if you don't know how React (and its baggage) even works, steer clear. You'll lose your time and sanity pursuing a transient, subpar solution to a problem you may not ever have.
I implore everybody justifiably interested in React to try Mithril or Cycle.js first. Both represent saner approaches.
I've been building production apps with React for about a year but at a glance I can't really see any clear advantages in Mithril or Cycle.js
Unfortunately I'm shoe horned into react for my client work. The majority of my projects are handed off to the client to maintain and React is sort of a selling point (because.. you know facebook uses it and all). I'm afraid I can't realistically sell Cycle.js at this point.
> Fork-and-forget (or fork-and-follow) is not a great way to keep up with what's happening in the original boilerplate (and in the space in general). Therefore, starting off a cloned boilerplate "kit" is not an acceptable solution. Reactuate is distributed as a dependency.
I am interested in understanding why the author chose not to use yeoman ? Wouldn't it be nice to get things like support for interactive generators for free -- while retaining the ability to compose and update ?
But this could be a great tool to fork and use across several related projects to manage dependencies on one place. Thanks for posting it!
I see what you did there.