Meteor agnostic to frontend - possible? Thinking out loud


#1

As a frontend/backend developer I often like to explore multiple platforms. I fell in love with Angular (1), but am not doing very well with becoming super well versed with v2 coming down the line. Haven’t been able to sink my teeth into React (lack of opportunity/hard request to use THAT platform by a client, not sure). But I have, for example, built out some really cool things with Angular Light (angularlight.org) and I am really liking http://aurelia.io.

What I’ve loved about Meteor… things that really stand out from me is reactivity (let’s say, the abstract idea of it), Meteor Methods, and above all – the easy development build system. Anything else already gets pertty close to the specifics of the view layer (e.g. using Blaze or using Meteor Angular) or DB specifics.

Then, I also looked at RethinkDb and loved it and thought how cool it would be if I could manipulate the Db via Meteor methods on the server - even if just directly via the API client they provide. The same if we wanted to use Arangodb, Horizon.io as the server or whatever.

I have wondered:

  • What would it take to I build a Meteor app but using Horizon.io? We know “back-ends” are a bit crappy in Meteor (and probably difficult to create and implement with the consistently changing landscape), for example Horizon looks and works great (ESPECIALLY after they incorporate support for files). Same, what if I wanted to use Google App Console server / tools (is that the name? not sure…) via their API? This would mean there’s no “Meteor Server”, but you’re building & developing the entire app with Meteor’s awesome build tools.

  • Is there such a thing as a Meteor Server that we could call from any frotnend client? For example - I’m not too sure how the idea of a “promise” can be built in another framework that’s not Angular, but what if “reactivity” was just “scope” (the Angular idea of scope and its implementations) changes of JS/json objects/arrays etc. – and they took place e.g. directly via whatever DB abstraction/api layer (e.g. RethinkDB, an ArangoDB when needed), and still having Meteor Server to call private/secure methods, interacting via the same db layer.

Let’s say I did want to start a new project, have it be built in Meteor, Angular Light (becuase I don’t want the overhead of dependency injection, simple component building will totally do) and I want it to use RethinkDb from the client and via private methods on the server. Then, tomorrow, I want to use Arangodb, and Aurelia as the frontend? (and by the way, I absolutely want the choice of DB and for all my specific cases, Mongo won’t do)

As I write this, it somehow feels very similar to how Brunch.io has been behaving and I feel that the Brunch build system is very similar to the way Meteor builds its own.

Finally, how complex is the underlying server pub/sub implementation to Mongo that we need a react or angular or wahtever specific data module. Maybe a tool akin to the Rails Resource angular module, but it would be for DDP and all its specifics? Hope you see what I am getting at.

Sorry if this is all over the place, I’m just sharing some of the questions I’ve recently had and ways (I think) some stuff could possibly be implemented.