What is Simperium?

Simperium is a data layer for developers. It instantly, automatically, and transparently circulates data everywhere it's needed, freeing developers to focus on building a great user experience and unique backend services.

What languages and devices are supported?

There are currently Simperium libraries for JavaScript, iOS, OSX, Android, and Python.

How do I use it?

You start by adding a Simperium library to your app. For example, on iOS and OSX, you add Simperium.framework to your project in Xcode. On the web, you include Simperium.js in your HTML file. Then you write a bit of initialization code to hook up the libraries to your data.

What's new about Simperium?

Using an older style of development, you typically pass messages to manually move data around, perhaps using a RESTful interface or WebSockets. These messages eventually cause your app's data and state to change.

With Simperium, you just change your app's data as if it were local. The Simperium libraries and service work together to manage and update that data everywhere it's needed in a way that is efficient, scalable and secure.

Why is it better?

It's simpler to use an automatic data layer rather than devising a custom message-passing system. Simperium can save time and money by significantly reducing the complexity of your code and liberating you from a lot of ongoing system maintenance.

Is there a server or backend of some kind?

You register your app with the Simperium service, which is a scalable infrastructure that we host and manage on Automattic's server infrastructure, the Simperium libraries work with the Simperium service to handle all the networking and storage for you. But you can host your own services too (see the next question).

What if I want more control?

Simperium can be a modular part of a larger system. You can host your own server that uses a Simperium library with an admin key to access your app's firehose of data for all your users. This lets you do things like control your own database and build services that are unique to your app.

How is this different than other developer services?

Simperium is the second generation of our technology. It is securely moving data for hundreds of thousands of users in production systems, with persistent connections, operational transforms, and aggressive versioning.

It is not a backend-as-a-service. We believe the best apps have both a great user experience and unique backend services. Our focus is to provide a great data layer between your frontend and backend while integrating with other providers of tools, hosting, and services.

Will my users be able to access my app while offline?

Yes. Simperium takes care of making sure everything works as your users connect and disconnect dozens of times each day. They have read-write access at all times, and they don't need to wait for connections or server responses. Simperium handles conflicts like merging of text and lists.

How does Simperium integrate with existing tools?

Simperium libraries are designed to work with tools that developers already use. For example, Simperium.js can integrate with Backbone.js to automatically update and backup your models. Similarly, Simperium.framework for iOS can integrate seamlessly with Core Data to automatically update your Managed Objects when you save your context.

What stack does it use?

Simperium uses tornado, sockjs, zeromq, mongo, and gevent.

How much does it cost?

It's free currently. Pricing will be resource-based with a free tier.

Who built it?

We built Simperium as a direct result of our experience scaling Simplenote to over a million users. You can read more about us on our about page.