<img style="width:100%;" src="/github-banner.png">
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
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
- Horizon server -- a middleware server that connects to/is built on
top of RethinkDB, and exposes a simple API/protocol to front-end
Horizon server's protocol in a convenient API for front-end
- 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.
Horizon currently has all the following services available 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
- Session management -- manage browser session and session
- Geolocation -- an API that makes it very easy to build
- 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
While technologies like RethinkDB and
WebSocket make it possible to build
engaging realtime apps, empirically there is still too much friction for most
developers. Building realtime apps now requires understanding and manually
orchestrating multiple systems across the software stack, understanding
distributed stream processing, and learning how to deploy and scale realtime systems. The
learning curve is quite steep, and most of the initial work involves boilerplate
code that is far removed from the primary task of building a realtime app.
Horizon sets out to solve this problem. Developers can start building
apps using their favorite front-end framework using Horizon's APIs
without having to write any backend code.
Since Horizon stores data in RethinkDB, once the app gets sufficiently
complex to need custom business logic on the backend, developers can
incrementally add backend code at any time in the development cycle of
We'd love for you to help us build Horizon. If you'd like to be a contributor,
check out our Contributing guide.
Check out our FAQ at horizon.io/faq
How will Horizon be licensed?
The Horizon server, client and cli are available under the MIT license