For more content like this, follow ButterCMS on Twitter and subscribe to our blog.
Why spend time building things that you can buy or rent?
If you've never heard of the term "BaaS" before, it stands for "Backend as a Service" and refers to third-party services that can be integrated into your applications to build out specific functionality quickly.
For example, imagine how much work it'd take your team to build a single sign on service for your product along with an admin interface for provisioning and managing user permissions. Sound like a pain? Well good news, there are plenty of services that you can drop-in to achieve this without writing a single line of server code.
In fact these days there are a number of successful companies who have been able to produce compelling products with barely any of their own server-side code.
In this article we introduce five BaaS providers that address common features and take a look at how they work.
1)Â Auth0 for authentication
Imagine owning several server-rendered web apps, single page apps, APIs, and mobile apps that all need to authenticate and authorize a shared set of users?
Auth0 makes this easier with its authentication platform. Auth0 can be integrated in a number of ways including hosted login pages and fully-integrated forms built using their SDK's.Â
For example, their hosted login page can be launched with a tiny amount of JavaScript code:
window.addEventListener('load', function() {
var webAuth = new auth0.WebAuth({
domain: 'YOUR_AUTH0_DOMAIN',
clientID: 'YOUR_CLIENT_ID',
redirectUri: window.location.href,
audience: 'https://YOUR_AUTH0_DOMAIN/userinfo',
responseType: 'token id_token',
scope: 'openid'
});
var loginBtn = document.getElementById('btn-login');
loginBtn.addEventListener('click', function(e) {
e.preventDefault();
webAuth.authorize();
});
});
Auth0 also provides an admin interface for managing users, permissions, and even impersonation.
Auth0 even offers nice extras like multi-factor authentication and breached password detection.
2)Â ButterCMS for blogs and content management
Imagine you've built a website using your favorite tech stack (eg. Node.js, Rails, React). Now imagine that you need to add a client-friendly blog and content management system your application–something as simple to use as WordPress.
Building a blog and CMS backend are probably the least exciting things you want to be working on. Luckily, ButterCMS makes this easy.
ButterCMS provides APIs and SDKs for integrating dynamic content into your application, along with a client-friendly admin interface for content editing and publishing.
For example, fetching your blog posts or page content as JSON can be done with this simple code using the ButterCMS JavaScript client:
butter.post.list().then(function(response) {
console.log(response)
})
butter.content.retrieve(["homepage"]).then(function(response) {
console.log(response)
})
ButterCMS's admin interface is simple and intuitive so you don't need to worry about your content editors bugging you about how to do things.
3)Â FormKeep for forms
Imagine you've built a simple static website. Now imagine that you need to add a custom designed contact form that can integrate with your CRM and send an auto-response email.
Building a custom server application to handle the form's POST requests sounds like a painful chore, right? FormKeep exists to save you from that trouble.
You use FormKeep by simply pointing your forms to their endpoint:
<form action="https://formkeep.com/f/df42a5f6bd1a" method="POST">
<input type="text" name="name">
<input type="text" name="email">
<input type="submit" value="Submit">
</form>
FormKeep lets you setup custom response emails and integrations with practically any CRM or backend using Zapier.
4)Â Moltin for Ecommerce
If you're looking to build an Ecommerce website or app, Moltin offers a wide set of API's that support everything from inventory, shopping carts, checkout, and payments. Moltin is incredibly useful for offering cross-platform shopping experiences, or if you want to build unique web experiences using your preferred tech stack.
Moltin's API is extensive, but to get an idea of what it looks like, here's an example request that adds a product to a user's shopping cart:
curl -X POST https://api.moltin.com/v2/carts/supercart/items \
 -H "Authorization: Bearer XXXX" \
 -H "Content-Type: application/json" \
 -d '{"data":{"type":"cart_item","id":"9bbf14aa-15ae-42f4-8eed-d860a7c8046f","quantity":1}}'
5)Â SendBird for messaging and chat
How many times have you built messaging or chat functionality into an application? If your answer is more than once, chances are you know you'd prefer someone else take care of it the next time around.
SendBird offers SDK's that cover the whole package from front-end UI to backend API's, so you don't have to worry about meticulously building chat interfaces or scaling the backend to millions of concurrent users.
For example, posting a message from a user in JavaScript is as simple as three lines of code:
channel.sendUserMessage(message, data, customType, function(response, error){
if (error) {
console.error(error);
}
});
SendBird supports various implementations including 1-on-1 messaging, group chat, and open channels. They also offer nice advanced features such as read receipts, spam flood protection, and moderation tools.
Wrap Up
We love hearing about new backend service providers, so let us know in the comments or submit them to our curated list on GitHub.
This was originally posted here.
Top comments (4)
I personally don't like auth0, I worked with it the last year and it was very common that the service was down and that made our apps down too. Lesson learned.
Second time I hear about issues with auth0. I understood you're not working with that anymore,but otherwise I would suggest Google's firebase. It has a built-in authentication manager. Pretty easy.
Missing google's firebase on this list
firebase.google.com/
Thank you Roger! :) Appreciate mentioning Sendbird! 🙏