RESTful APIs

At Crema, we are in the business of people and we believe creativity and innovation can impact the world for good.

There’s something distinctive—something special—about your product. At Crema, we pick the right supporting technologies to take care of the basics, allowing us to focus on that something special. Our main goal is to create something that is reliable, of good quality, but also gets your product in front of customers faster, ensuring you’ll be ready to hire your own product team when the time is right. Because of that, we lean heavily on out of the box frameworks that handle a lot of the heavy lifting for us, have great communities behind them, and allow us to focus on those special parts of your application.

With our move to using React for our front-end, that means we’re creating RESTful API’s that communicate with the front-end using HTTP requests to GET, PUT, POST, or DELETE data. Whoa. Slow down. What?! That’s just a fancy way of saying that we’re moving data around with some well-proven industry standards.

An API is just code that allows two software programs to communicate with each other. A RESTful API uses representational state transfer (REST) technology, which is lightweight, fast, easy to work with, and used by most web and mobile applications. The frameworks we work with allow for us to quickly build these API’s for the front-end to consume, and ensure your data is transferred safely.

So how do we do it?

Ruby on Rails

For many years at Crema, Ruby on Rails was our go-to when creating production ready web applications, with an out of the box web framework, we were able to move quickly to deploy testable software. As we started to move our web applications to client-side frameworks like React and introducing more mobile experiences, we were still able to leverage all of the great things about Ruby on Rails to continue serving up that sweet data layer with JSON responses for the front-end to consume.  It’s easy to use, easy to learn, and has some of the best and broadest community support behind it. You’ll have no trouble hiring your own crew to take the reins when the time comes, and until then, it lets us move fast and make the most of your runway.

Javascript

When Javascript is the right tool for the job, we break it out. This means we write a lot of javascript. Node.js has opened the doors to using JavaScript outside of the browser, including on the server. With its growing popularity, there became a need to have robust, flexible frameworks to give developers a more complete experience. There are plenty to choose from, but for RESTful API’s, we’ve landed on Hapi.js. It’s a battle-tested, lightweight API framework with succinct ecosystem of quality plugins and extensions. In the cases where a CMS (content management system) or admin tool is a requirement for our clients, Keystone.js is a nice framework that comes with a lot of that out of the box, with plenty of space to customize. When we’re building something for ourselves we often reach for Javascript, and when it’s right for your product, we will then, too.

The Future

As we expand our offerings to more large scale, high volume applications, we’re also exploring new technologies that might meet these goals better. Every other Friday we have a day where we innovate. We learn new technologies and better ways of doing things. With that, comes experimentation with frameworks that will make sense to meet these goals. This includes Elixr/Phoenix, a functional programming framework that brings in the ease of Ruby on Rails, with the proven performance and scalability of Erlang. We’re starting to become huge Functional programming nerds, so this is scratching multiple itches for us as we dive in further.