If you like the idea of Firebase but hosting your data somewhere else except your servers is not an option for you, then you might consider Horizon, the new open source javascript backend which offers similar features. Horizon let you build and deploy web or mobile apps using a simple JavaScript API. You can scale your apps to millions of users without any backend code. It is build by the RethinkDB team and an open-source community.
What is Horizon?
Horizon is an open-source developer platform for building sophisticated realtime apps. It provides a complete backend that makes it dramatically simpler to build, deploy, manage, and scale engaging JavaScript web and mobile apps. Horizon is extensible, integrates with the Node.js stack, and allows building modern, arbitrarily complex applications.
Horizon is built on top of RethinkDB and consists of four components:
- Horizon server — a middleware server that connects to/is built on top of RethinkDB, and exposes a simple API/protocol to front-end applications.
- Horizon client library — a JavaScript client library that wraps Horizon server’s protocol in a convenient API for front-end developers.
- Horizon CLI –
hz
— a command line tool aiding in scaffolding, development, and deployment- GraphQL support — the server will have a GraphQL adapter so anyone can get started building React/Relay apps without writing any backend code at the beginning. This will not ship in v1, but we’ll follow up with a GraphQL adapter quickly after launch.
The first version of Horizon will expose the following services to developers:
- Subscribe — a streaming API for building realtime apps directly from the browser without writing any backend code.
- Auth — an authentication API that connects to common auth providers (e.g. Facebook, Google, GitHub).
- Identity — an API for listing and manipulating user accounts.
- Permissions — a security model that allows the developer to protect data from unauthorized access.
Upcoming versions of Horizon will likely expose the following additional services:
- Session management — manage browser session and session information.
- Geolocation — an API that makes it very easy to build location-aware apps.
- Presence — an API for detecting presence information for a given user and sharing it with others.
- Plugins — a system for extending Horizon with user-defined services in a consistent, discoverable way.
- Backend — an API/protocol to integrate custom backend code with Horizon server/client-libraries.
See more here: https://github.com/rethinkdb/horizon