DEV Community

Roger Jin
Roger Jin

Posted on

5 BaaS Services to Cut Your Development Time in Half

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();
 });
});
Enter fullscreen mode Exit fullscreen mode

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)
})
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

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}}'
Enter fullscreen mode Exit fullscreen mode

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);
   }
});
Enter fullscreen mode Exit fullscreen mode

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)

Collapse
 
fcpauldiaz profile image
Pablo Díaz

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.

Collapse
 
vsbatista profile image
Vinicius Soares Batista • Edited

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.

Collapse
 
vsbatista profile image
Vinicius Soares Batista

Missing google's firebase on this list
firebase.google.com/

Collapse
 
dosh profile image
John S. Kim 💬

Thank you Roger! :) Appreciate mentioning Sendbird! 🙏