Grapher, Apollo or Pub/Sub?

Hi everyone,

After few days reading about Grapher and Apollo, I can’t make my mind for data layer.

I’m working on a small project that begin with 5 mongo databases. These mongoDB are normalised and my goal is to go as simple and quick as it can be to get my app built and running (with moderate security level).

Which tools do you advice at this step of my new app ?

Start with Pub/Sub for sure! It’s so nice!

Both Grapher & Apollo are “extras” that will add more complexity for you up front.

If you had lots of data that you wanted to build an app on already existing in a database like PostgreSQL for example, you perhaps would want to consider starting with Apollo.

I’ll take the time to explain this in more detail if you are interested, because the MDG team created Apollo, and because they had to make their investors happy, they had to “pump”/“hype” Apollo enough that it made people think that Meteor was not enough. This was not even their intention, just an unfortunate side effect of needing to sell Apollo to the dev community. Apollo is very very good for certain use cases, like a Facebook, Uber, AirBnB, etc. scale business. This is part of what causes people confusion. A new app under development by a 1 to 5 person team does not need the extra complexity of Apollo. It’s a thing you might add if you scale or end up with hard to manage (high volume) data sources other than MongoDB.

Grapher is also nice, but it is just one option for simplifying a mess you might create after a year or two of development. And if your whole team knows Grapher well, it could be good for teams to start new projects with, like the Cult of Coders who built it.

If you are really using 5 databases, not just 5 collections, I would consolidate the data to just 1 database, with many collections. Much easier & lower cost to manage, maintain, backup, scale, etc.

Also, if you want “easy” & “fast”, make sure to use Atlas & Galaxy.

If you haven’t picked a front-end (view layer) yet, then just watch a beginner video on each option, should probably take you less than 1 hour. You’ll get the feel for which one you might like best. Svelte is cool, but it’s a little new so you might find unsolved details in the community.

If you want tried and true, Blaze, React, and Vue are the best to look at. Every view layer is doing essentially the same thing for you, so think about which “style” you like best. I chose Vue personally because it was the simplest to me and it fit with what I wanted to build. I get to code less because I chose Vue. But this is a personal choice. I had to learn & try React to make that choice and I had already used Blaze, but I wanted something that the whole world was on board with. I’ve used Vue Components in my development in some cases that cut months off my dev time. And I’m fascinated and inspired by Vue as the most used pure open source project with no corporate owner. This is the future to me, I’m happy to have corporate owners/sponsors of open source projects, but I believe the people of the world will build & maintain what we need an give small financial contributions back to the creators to reward them.

React is also a wildly popular success and has the backing of Facebook and a big dev team, so clearly it is a good choice if you like to code in the React style.

Really it’s great because all of this stuff is just JavaScript, HTML, an CSS that put together in clever ways that save us time & effort if we learn just a little more :grinning:

Happy coding! Happy to share an opinion. :tada:

3 Likes

@mullojo, thks you !!! Your advice remove so many questions and load from my head. Really, thx !!!

First of all, I mistaken. It’s not 5 databases, it’s 5 collections, using mongoDB and I create the 5 collections from scratch.

Secondly, This is exactly THE point. As newbie, we don’t know when to use a new tool like Apollo or Grapher for examples, nor why something like Apollo been created. I only see that nobody speak about the classic stack and that there is a new thing called Apollo and that it manage data. This introduce confusion : Should I use that for my small, new born app ? Now, thx to @mullojo and @alawi explanations, I am confident that I don’t need that tool for my small app. Same thing for Grapher. I am sure that those tools are great tools and doing a great job, but for now, they just confuse me, because my app is a newborn app and I don’t need that.
But what is great with meteor platform is that possibility to use Apollo or Grapher, when my app will grow and need that tools, let’s say when my app will be a “teenager”. Meteor and meteor community easily assist my app growing with the best tools at the best moment of the “life cycle” of my app.

2 Likes

Awesome! you got it! :rocket: