On December 21st, 2013 Firebase reached out to me because of this blog post to ask for what exactly I found more desirable in goAngular/goInstant over AngularFire/Firebase and to point out the updated documentation for AngularFire which has really simplified the API. Not only has the API been cleaned up but so has the documentation itself, it is much easier to follow and use as a reference instead of discerning it just from examples/minimal docs. I plan on playing with again to see how it compares to goInstant and possibly writing a more in-depth review of the two as more of a side-by-side comparison. I would like to thank James at Firebase for reaching out to me to ask for feedback, it's always so refreshing to see a company reach out to people who aren't satisfied with their product and I appropriate the directness. The BaaS game is just starting to really heat up and I look forward to not only goInstant's and Firebase's future innovations in the field but also other startups as I'm sure we have only seen the tip of the iceberg.
As of late I have been very interested in Real-time communication(RTC)/BaaS providers such as Firebase, Kinvey, and GoInstant. I realize that not all of those are RTC nor are they all BaaS but they all allow you to get up and running without having to setup a server. You can signup, download the sample app, and be playing with it in record time. I get extremely excited just thinking about the possibilities these platforms offer and love how time to MVP can be greatly decreased.
Along with RTC/BaaS I have also been spending quite a bit of my time working with AngularJS, both for my job and in my free time. If you haven't heard about AngularJS or have never used it allow me to understate it's coolness with this short description: AngularJS is a JS framework that, unlike most JS frameworks, allows for 2-way binding meaning if I bind a variable to an input box and then change the value of the variable in my code then the value in the input box will auto-update and if I change the value of the input box then the value in my code will also be changed (See an example here).
About a week ago I was contacted by an employee at GoInstant asking me to test out their GoAngular library they wrote to make AngularJS development even easier. I had been working with AngularFire quite a bit which I was using to create a chat application for work and so I was excited to test out another similar framework. I had tried out Kinvey for a side-project of mine but it didn't have AngularJS bindings and so I had to write my own wrapper services to "Angularize" some of their code. I had somehow missed GoInstant when I went on my search for BaaS providers, probably because my requirements at the time did not include RTC, and so I jumped at the chance to play with a new, to me, service (especially since I got to use AngularJS).
Looking back I really wish I had been contacted about 1 month earlier as in my opinion GoInstant is better than Firebase in nearly every aspect when it comes to what I am doing with it. It has a much finer-grained level of control than Firebase and would have suited my project better. The only thing I like more about Firebase is Firebase Forge which is a very nice web-gui interface to easily see and manage your data. GoInstant, due to it's nature, doesn't really need something like this but it might be nice for debugging purposes. GoInstant and I traded a few emails and I gave some feedback on the library and today they are releasing it to the public. Check out their blog post here
GoAngular takes an interesting approach in that by default your are synchronizing your entire controller's
$scope instead of a specific variable. When initializing GoAngular you can choose to include or exclude models by passing in an array of names or regular expression patterns to match against. Here is a simple chat applicationn I threw together in a few minutes. I've quite enjoyed working with GoAngular and I look forward GoInstant's continued development on it.