Starting new app, considering the "flow" way

I’ve just completed two major applications using Iron:Router in one and no router in the other (It was a true application and no amount of routing would have made sense).

These were kind of large applications and while I watched the emergence of the “flow” series of packages with great interest, I wasn’t able to leverage them at the time.

The application I’m about to embark on is a routed application with publication and method level security (so no need for router security) and only needs to be compatible with modern web (no legacy system support).

If it wasn’t obvious by this point, I’m seriously considering (as in currently planning on) going down the flow route (flow router, flow layout, flow components) and don’t see any reason not to.

However given the fact that I’ve been pretty heads down for almost 6 months on these two projects, I’m curious, what do you guys see as relevant and is there perhaps a better answer than that stack?

You mentioned you’ve been heads for “two projects” but listed three prior.

React.js would probably be relevant to Flow Components as it was inspired by React.js. If you go this route you don’t need Flow Layout (now called Blaze Layout) or even Flow Router (but you can). You could use React Router. Here’s the write-up by MDG on how you would do it.

There’s also Blaze Components, which works out of the box with Flow Router and Blaze Layout, but not with Iron Router. Blaze Components is a heavily object-oriented way of composing your templates.

I’ve got 3 meteor projects under my belt. One is quite a bit older than the last two. Two of them were actually a lengthy process. The other one was about 2 weeks beginning to end.

Looking at those two, I feel like Flow Components is what I’d prefer. It has to me the “right” amount of Object Oriented for javascript client code. Of course that’s more of a feel than anything else, but it’s what I like. I’ve played with viewmodel but that doesn’t play nicely with spacebars (it really is meant to just wrap something like knockoutjs onto blaze and that seems kludgy and it doesn’t work well.

I suggest you to use FlowRouter with BlazeComponents or React. You can even use FlowComponents. We are using it for a major project and we’ll maintain it. For React you can use ReactRouter as well. FlowRouter has Meteor specific tools and a proper Server Side Rendering model.

So, even you use React, there is a good reason to use FlowRouter :slight_smile: