Facebook is shutting down Parse. Parse is a popular MBaaS (Mobile Backend as a Service) used by several app developers. Facebook had acquired this cloud based service in 2013. Facebook now has decided to close it down by 28th January 2017. Users who used the backend services of Parse to host their apps have a year to migrate. Though the initial surprise, disappointment and tepid anger of the app developers who have their apps hosted on Parse and have been working on apps on Parse has died down, the concerns remain. Indie and small developers were a disappointed lot and #Parse trended on social networks for days.
What after Parse? Let’s look at the alternatives.
1) Parse Server
Facebook has released an open source replacement for Parse, it is called Parse Server. This Parse Server makes it possible to serve the Parse API from any infrastructure that can host Node.js applications.
It can be downloaded for free from Github. Parse to Parse Server is the most viable and seamless option. There are many tutorials that can help the developers migrating to Parse Server. It supports Parse models, users, functions and more, so Parse SDKs can be used and client side codes do not need many changes. Some features that were in Parse are missing like Webhooks, Dashboard, Push Delivery, Analytics and Configuration etc. It is self hosted, so would require a server to be maintained. You would then be in charge for both the backend and the frontend. You can also set up Parse server on AWS using AWS Elastic Beanstalk. If you don’t want to use any other BaaS and if you do not want to rewrite your app code, Parse Server is your best option.
2) AWS Mobile Hub
Amazon Web Services provide an integrated console that helps you build your apps and test and monitor them too. You don’t need to worry about maintaining and scaling infrastructure. You don’t need to worry about integrating and configuring services. You can focus on exporting your data, retrieving your APNS and/or GCM credentials and creating AWS resources. AWS help you with feature selection and configuration. It helps you in powering those features and generates working quickstart apps for iOS and Android. It generates custom client SDKs for iOS or Android apps based on your setup. You can use these AWS designed quick start apps or use its codes in your app to modify it to publish and subscribe to Amazon SNS (Simple Notification Services). You can read more on migration from Parse to AWS mobile Hub here.
You can use AWS for user authentication, backend logic, data storage, push notifications, content delivery and analytics. After the app is ready you can test on real devices. You can track its usage on the analytics dashboards provided. You only pay for the services you use. AWS Mobile Hub has every Parse feature with best-in-class pricing.
3) Couchbase
Couchbase stores the data in the same way as Parse. The key-value pairs in the ‘ParseObject’ is similar to a document in Couchbase. Couchbase is a full stack database with integrated synchronization and security. It has features like REST API, events, Stream and batch API, conflict resolution similar to those in Parse. Couchbase Mobile is a complete mobile solution which has an embedded JSON database (Couchbase Lite) and a synchronization solution (Sync Gateway). You can build mobile apps that can work both with and without internet.
To migrate, you need to setup your Couchbase in the cloud. It will help you store your data both locally and in the cloud in a secure way. You can then synchronize the data between the clouds and other devices. You can setup Couchbase with Digital Ocean to transfer app data from Parse’s cloud code to Couchbase server.
4) CloudKit
CloudKit is an Apple Framework that helps in saving and storing data and assets. With iOS 8, Apple brought in CloudKit which is a remote data storage service for apps based on iCloud. It is a low cost option which uses iCloud accounts of users to store and share data as a back-end storage service. It has a subscription/notification built-in feature which is useful for social or other content sharing applications. You get a notification when a specific data is created, updated or deleted. Though it is iOS focused, Apple has expanded its reach to web apps with CloudKit JS. Server-side tokens are also available which enable the server to communicate with CloudKit services via a REST API. CloudKit comes with a user-friendly CloudKit dashboard.
5) Kinvey
Kinvey offers cloud storage and push notifications. It can provide support to Parse apps. Its libraries have prebuilt important mobile features like offline caching and network management. It takes care of scaling data services, file services, push services, making apps work offline and stores data securely. Users can change password, move data, store data, encrypt data, login/logout with a single line of code. It has a NoSQL based datastore, which is powered by MongoDB. It has complete SDKs in Swift, JavaScript, Objective – C, Xamarin, Java, Angular.js, Backbone.js, Node.js etc.
When you use Kinvey, you get a complete backend stack with data store, file store, push notifications, email and SMS, A Node.js PaaS to write and run run custom code, analytics to track how your apps are being used, an API console to test your backend and much more. Its architecture is very similar to Parse. It can scale up like Parse. When you transfer data from Parse to Kinvey, it is easy to clone backend and migration is easy.
6) Syncano
Syncano helps in building and managing your app. It helps you in authenticating your users easily and in managing API keys. You can create different classes and set up a schema for each class and manage data in each one of them. You can run queries to filter data. Like Parse’s Groups, Syncano has Syncano has Syncano Roles which give select permissions to users based on what Group they belong to. Instead of Parse’s Cloud Code, Syncano has CodeBoxes where you can write backend code functions to run on clouds. These CodeBoxes can be written in different languages like Python, Node.js, Ruby, PHP, Swift and Go. Webhooks are endpoints used to run CodeBoxes. These CodeBoxes can be run on a Schedule or by setting up Triggers. Triggers run a CodeBox everytime a Data Object is created, updated or deleted. Syncano provides library support too. Currently it supports Ruby, Python, Javascript, iOS, Android and Arduino. With the help of Syncano you can download and install ready-made CodeBoxes directly into your application.
It doesn’t support push notifications yet.
7) Firebase
You could use Firebase as it is similar to Parse. Both help in making server less apps. Its SDK is simple to use. It is easy to authenticate Firebase with Google, Twitter, Facebook or email. It is a real-time cloud data service. One can build real-time, collaborative applications with Firebase. Its Data is standard JSON. The JSON tree data architecture is different from traditional data architecture. The real-time database helps in applications that need time sensitive data transmission like a chat app.
Developers can access the data with the help of a client library or the REST API. When the data is accessed through a client library, data changes can be synchronized in real-time with clients within milliseconds. Firebase has REST API with Backbone.js, AngularJS and Node.js integrations.
Firebase provides a very flexible expression-based security API. Its security API allows fine-grained control over data access. It doesn’t support push notification. There is no simple way to add cloud code. You would need to use your own server and add additional logic.
There are many more options as Venture beat listed them out here.
Conclusion:
You can also go for your custom backend. If you can handle server side programming language you need not depend on any of these companies. You can have full control and you can build in customized features. It might take a lot of time and cost to build, and will require maintenance. For small apps, it might not be the best option. Besides these, Google Cloud Platform and services of Heroku, IBM Bluemix or Microsoft Azure could also be used. Developer community is coming up with new solutions every week.
Basically you need services that provide you with Data storage, authentication, User administration, CDN asset storage, analytics, push notifications, cloud code integration and a backend database. You need to find a solution that is durable. Ideally, you need to buy into services that have a proper monetization strategy in place. You can start with the free tier and can scale up later as your users grow. So there is a lot to look up to. If you are a Parse user looking for migration, there are plenty of options. Understand your needs and do a little research on your own. Happy Migration!