
Kinto – open-source alternative to Firebase and Parse - vladikoff
http://kinto.readthedocs.org/en/latest/overview.html
======
rbranson
Isn't one of the main benefits of something like Firebase or Parse that you
don't have to run it? It's nice that Kinto packages the stack together and
provides plug-and-play APIs, but there's quite a bit of expertise and overhead
operating a backend stack in production.

~~~
aidos
Maybe, but there are others of us who don't use firebase because we can't
outsource our datastore like that. It goes both ways.

~~~
cristoph
You can use Parse an Firebase to store sensitive data by applying client side
encryption. Of course one of the biggest problem is: how do you query that
data since it's encrypted. But lately, there are some start-ups that aim to
make encryption searchable. See ZeroDB, CryptDB, IQrypt.- the last one is
designed to be used for Parse and Firebase:
[http://iqrypt.com/docs/Home/](http://iqrypt.com/docs/Home/)

------
fiatjaf
Why not CouchDB + PouchDB? It's offline first and replicates over HTTP.

For more fine-grained permissions and other features I'm also developing a
small Go database compatible with PouchDB at
[https://github.com/fiatjaf/summadb](https://github.com/fiatjaf/summadb)

I hope it will be able to sync through websockets soon.

~~~
Lazare
I find it an ongoing mystery how _many_ of these tools and services pop up
that aren't based on Couch/PouchDB, don't reference Couch/PouchDB, aren't
compatible with the Couch sync protocol, and don't even seem aware the
Couch/PouchDB exist.

I'm 100% waiting to be sold on "here's a new tool that does what CouchDB does,
but is better in these specific ways", but if your sales pitch is just "we're
working on writing an exact clone of CouchDB because we didn't realise CouchDB
existed" it doesn't really sell me.

(Nothing wrong with a dose of Not Invented Here Syndrome; a lot of progress
comes from reinventing the wheel. What gets me is the No Idea What's Been
Invented Syndrome.)

~~~
daleharvey
I am a little confused at why PouchDB isnt listed on the comparisons page, I
am fairly certain they sent a comparison listing and asked me to review it at
some point but in all fairness they did investigate and give reasons to not
use PouchDB, this post is linked [http://www.servicedenuages.fr/en/generic-
storage-ecosystem](http://www.servicedenuages.fr/en/generic-storage-ecosystem)

In my extremely biased position (as the maintainer of PouchDB) I would really
have liked to still see this based on the CouchDB protocol / PouchDB codebase,
it is true that neither Couch or PouchDB have particularly expressive and
powerful permission systems (which is what the main downside looks to be)
however I have been very aware of that building PouchDB and have made a lot of
effort to ensure a powerful and flexible permissions system can be built on
top of it (for example
[https://github.com/thaliproject/node_acl_pouchdb](https://github.com/thaliproject/node_acl_pouchdb))

I do think that when you are tasked with providing cloud services for existing
Mozilla products that there is a lot more risk involved in leveraging an
existing established ecosystem like Couch / PouchDB however so its fairly
likely that for Mozilla services this was the best choice (the same in reverse
is true however also when looking at this as a generic library).

As for a disclaimer, I am a maintainer of PouchDB and a Mozilla developer. I
have worked / talked to this team about Kinto, work on some features that use
it and they are doing awesome stuff, some of which Pouch may possibly look to
do as well.

~~~
tarekmoz
Yeah our doc is incomplete, I did add a bug about this the other day. We
should compare _products_ (pouchdb vs kinto.js) and separately _deployments_
(kinto server vs couchdb)

------
ndesaulniers
Heh, so last week my buddy Tarek Ziade (one of the developers of this) and I
were talking about this (kinto) project he's working on. I asked him what the
meaning behind the name was. He said "you know the cloud from Dragon Ball.
They don't use it as much in DBZ since they can fly."

I asked him if he meant "flying Nimbus?" Apparently, something was lost in
translation (I'm in the US, he's in France).

~~~
mikexstudios
Well, "kinto" is the name for the cloud in Japanese (see:
[http://dragonball.wikia.com/wiki/Flying_Nimbus](http://dragonball.wikia.com/wiki/Flying_Nimbus)).

------
sweetiewill
Would have to throw in Couchbase Mobile for comparisons too. It is Open
Sourced as well and it provides the offline component with abstraction to
sync-ing which is one of the most difficult features/problems it solves.

[http://developer.couchbase.com/documentation/mobile/1.1.0/de...](http://developer.couchbase.com/documentation/mobile/1.1.0/develop/training/build-
first-ios-app/index.html)

------
simple10
From the Dockerfile [1], it looks like it's built on top of postgres. I'm
excited to see if anyone uses Kinto for more than a weekend project.

[1]
[https://github.com/Kinto/kinto/blob/master/Dockerfile](https://github.com/Kinto/kinto/blob/master/Dockerfile)

~~~
rhizome31
From the Overview page: _At Mozilla, Kinto is used in Firefox and Firefox OS
for global synchronization of settings and assets, as well as a first-class
solution for personal data in browser extensions and Web apps._

------
sbarre
So I read through the docs for a few minutes and something wasn't entirely
clear.. It shows "offline-first design" so does that mean I can use it as a
local storage in the browser/device, and it can sync later to a server?

~~~
arosequist
That's what it looks like [1]. Every operation is done locally via IndexedDB,
and then you manually perform syncs.

[1]
[https://kintojs.readthedocs.org/en/latest/](https://kintojs.readthedocs.org/en/latest/)

~~~
quantisan
Great! We run Firebase in production. Offline-first is one of the most
important features for us. (I know, Firebase isn't there yet) I'm surprised
this isn't showcased more prominently on their marketing.

~~~
jamest
Firebase does have offline support for iOS/Android[1]. Web support is coming.

[1] [https://www.firebase.com/blog/2015-05-29-announcing-
mobile-o...](https://www.firebase.com/blog/2015-05-29-announcing-mobile-
offline-support.html)

------
sktrdie
Does anybody know about databases that talk WebSockets rather than HTTP? For
frontend apps it seems more logical to use WebSockets. Dealing with AJAX and
understanding how to manage all of that on the client is still a huge dilemma
in the React/Flux/Angular community.

~~~
fiatjaf
There's [https://github.com/nolanlawson/socket-
pouch](https://github.com/nolanlawson/socket-pouch). It's Node + LevelDB and
optionally offline-first.

------
miles_matthias
I'm a big fan of services like Parse & Firebase so it's cool to see something
open source and independent get released.

I've never made the jump to use Parse or Firebase in production though because
inevitably I have to write some custom server code to do some integration. For
example - payments with Stripe. Charges should only occur on your server (not
on the client) but I've yet to see anyone allow you to configure a payment
trigger in one of these services.

~~~
subpixel
Basically, you need a service running on a separate server to implement these
sorts of integrations. If Firebase is a long-term part of your stack, I agree
that sounds unappealing, b/c the reason you're paying Firebase is so you don't
need to wrangle a server.

You may think differently if you're using Firebase as the fastest way to get
an MVP up and running (that happens to be my use case)

------
Raed667
Looks impressive, but as a Parse user I think that the selling point are the
open-sourced SDKs for lots of platforms.

EDIT: this seems to be lacking a graphical administration panel as well.

~~~
tarekmoz
> this seems to be lacking a graphical administration panel as well

we are working on one, that's almost ready. Should be released sometimes
during Q1

~~~
Raed667
Great, I'm really excited about testing this on my VPS. Hope it handle the
load.

------
chrstphrhrt
This looks really cool.

Do you have a gitter channel or something?

Would love to talk shop about the design decisions! Email me at chris at
ramses dot tech.

(I'm one of the devs of [http://ramses.tech](http://ramses.tech))

~~~
vladikoff
There is an irc channel, join #storage on Mozilla IRC

[https://search.mibbit.com/networks/Mozilla/%23storage](https://search.mibbit.com/networks/Mozilla/%23storage)

------
wolframhempel
Seems comparable to [http://deepstream.io](http://deepstream.io)

------
jonpaul
I'll throw in an article that I wrote about building an open source Firebase
clone: [http://procbits.com/2014/01/06/poor-mans-firebase-leveldb-
re...](http://procbits.com/2014/01/06/poor-mans-firebase-leveldb-rest-and-
websockets) /
[https://github.com/jprichardson/iceden](https://github.com/jprichardson/iceden).
Written in Node.js.

------
andreyf
It's not really an alternative to Firebase until you have change notification
and a similar scaling model (i.e. scale by throwing money at it).

------
jamesw6811
For creating a customized web API easily, we are considering
[http://loopback.io/](http://loopback.io/) and
[https://www.dreamfactory.com/](https://www.dreamfactory.com/) \-- I wonder
how these compare to Kinto.

------
vskarine
Would be nice if they included RethinkDB in comparison as well

------
avinassh
> Kinto is a server allowing you to store and synchronize arbitrary data,
> attached to your Firefox account.

Why does the repo readme says this? What does it mean? I mean, why Parse kinda
service is related and attached to Firefox account?

~~~
tarekmoz
It was our first use case at Mozilla when we started the tool. This sentence
is now a bit misleading. Thanks for pointing this out.

------
ametaireau
We put together an answer to the questions that arised in this thread. Hope
this helps: [http://www.servicedenuages.fr/en/hackernews-
feedback](http://www.servicedenuages.fr/en/hackernews-feedback)

------
smithclay
At this point, are there any major tech organizations who haven't jumped on
the Backend-as-a-service bandwagon?

Kinto - Mozilla, CloudKit - Apple, Parse - Facebook, Firebase - Google, Azure
Mobile Services - Microsoft, Mobile Hub - Amazon, Usergrid - Apache Foundation

... and many, many startups.

------
jondubois
I'm not a big fan of offline storage for web apps. Any serious app will
quickly exceed the localStorage limit which is only 5mb.

I would also question the decision to use HTTP for this purpose instead of
WebSockets.

~~~
striking
WebSockets are for fast, low-overhead connections. If you end up making a new
HTTP connection for every update, and there are a lot of updates happening,
you should be using WebSockets instead.

Otherwise, HTTP works best. It has better tooling and will soon be even faster
due to HTTP/2.

~~~
nojvek
I'm surprised no one mentions xhr streaming, if your pipe is only one way i.e
server notifies client, then xhr streaming is quite easy to use and as fast as
websockets.

~~~
striking
I assume most people consider XHR a kind of HTTP request. It is in the name,
after all.

------
brodo
This isn't really a complete replacement for Parse or Firebase as far as I can
see. Apache Usergrid and Baasbox both provide more of the features that
Firebase and Parse provide.

------
estefan
If the parse web site wasn't such useless shit I might actually be able to
work out whether this really is a good alternative... :-(

