arrow-rightbarscheckmarkcircle-dribbbleCreated with Sketch.circle-emailCreated with Sketch.circle-facebookCreated with Sketch.circle-githubCreated with Sketch.circle-github2Created with Sketch.circle-gplusCreated with Sketch.circle-instagramCreated with Sketch.circle-linkedinCreated with Sketch.circle-rsscircle-twitterCreated with Sketch.emailCreated with Sketch.facebookgplusinstagramCreated with Sketch.keysCreated with Sketch.linkedinmarsbased-logo-hormarsbased-marsmouseCreated with Sketch.pinpinteresttwitter

How We Make the Right App for You (Part 2)

Xavier Redó Cano
· Mar 24 2014

Captain's log, stardate d489.y35/AB

Disclaimer: long (and nerdy) post ahead.

In our last entry , we wrote about MarsBased's principles when working for other companies, because we have recently been hired to develop our first client apps.

In this entry, we are breaking down our tool belt.

Frontend Development

MarsBased stands for innovation by using state-of-the-art technologies. HTML5, CSS3 - based on Bootstrap - and client-side Javascript frameworks like AngularJS allow us to deliver responsive and highly dynamic websites with an unparalleled User Experience.

The MarsBased Tech Stack

Twitter Bootstrap is a front-end framework created to design websites faster and easier. Its last version adopts a "mobile first" philosophy providing tools to create responsive sites and apps. Nowadays, every competitive website needs to be responsive, due to the rise of mobile traffic in multiple-sized screens or the latest Google algorithm changes, focusing on mobile experience (Google Hummingbird explained here).

Another technology we use is LESS. As a dynamic stylesheet language, LESS introduces variables, functions and operators in your stylesheets and preprocesses them. By doing that, designers can actually focus on designing, without having to write long, repetitive and tedious CSS stylesheets.

As for the Javascript side, we use AngularJS. AngularJS is a Javascript framework designed to build single-page web applications as if they were native by removing all the Javascript boilerplate. By doing that, AngularJS gives the browser the power it needs to transform our ideas into apps.

The most recent addition to the MarsBased tech stack has been CoffeeScript. CoffeeScript allows rewriting Javascript code with simplicity and elegance. After some research and testing, we integrated both CoffeeScript and AngularJS with Cookin.me and fell in love with it.

Server Side Development

We are Rubyists! We love Ruby on Rails simplicity, elegance, and cleanliness. While we believe that methodologies are language-agnostic, Ruby and Ruby on Rails help us follow Agile Development practices. That's the reason why we have chosen tools that let us move quickly through each development stage: building, integrating, testing & releasing.

At MarsBased, we take testing very seriously. We know that our clients might require changes over time, and introduce improvements to their apps. The only way we can ensure delivering these changes without breaking the entire codebase of the project is through testing. Test, test, test and then some.

We have adopted two popular Ruby frameworks for testing. With RSpec and Capybara, we feel very comfortable applying a test-driven development approach from unit testing to building acceptance tests.

For more specific projects, we have a flexible tool belt. According to every project's needs, we've got a broad set of technologies at hand to give our clients exactly what they need:

  • ElasticSearch: For indexing and searching through our client data without affecting performance.
  • Sidekiq: Handy when there are a lot of background processing jobs - like image and video transformations, web crawling or big data processing.
  • Memcached: Caches almost every little part of a web application to achieve blazing fast responses, thus keeping response times low.
  • Redis: Manages big amounts of volatile data faster than any relational database can.

Deployment

Small teams need to automate and delegate processes to manage recurrent tasks. This is why we use Chef: to automatically provision our servers. Automation spares us from having to log into our servers (this is so last century's!) and guarantees that no human errors will happen during server installations. All the time we save by automating, we can use it in polishing our apps even further.

Because of our background using Chef, we have a custom set of configurations (called cookbooks in Chef jargon) that cover all the possible scenarios we could ever need. We don't need to reinvent the wheel for every project. We can set up a server in less than 30 minutes unless anything uncommon is required.

For deployments, we use Capistrano. This open-source tool is used to automate software deployments without downtime. Fast and simple. It is actually an awesome way to deliver our customers the latest version of their apps seamlessly.

Maintenance

At MarsBased, we know that sometimes things might go wrong. Most of the times, the real cause of a general failure is an error that goes unnoticed for too long.

Our servers run very different services that need to be monitored (Nginx, MySQL or Elasticsearch just to name a few!), so we use Monit to rule them all. Monit sends notifications whenever there is a risk of something failing such as a service being too loaded. It actually allows us to act proactively before any errors arise. But if a service goes down, Monit automatically tries to start it to minimize the downtime as much as possible.

Although Monit itself is very impressive, we also use another error-tracking tool very known by the Ruby community. Airbrake is an exception reporting service Airbrake trusted by over 40k customers</a>, now seamlessly integrated with our tech stack. Simply put, if anyone using our web applications comes across an error message, we'll get a notification in our cell phones with the details of the error in less than a minute.

Nothing is more satisfying than spotting and solving bugs before users have even time to report them.


That's all for today, folks. As you can see, we love talking technologies. Feel free to drop us an e-mail or bring up a conversation on Twitter anytime.

Hire Us

You're one step away from meeting your best partner in business.

Hire Us
Cookies icon

This website uses cookies to give you the most relevant experience. Using this website means you agree with this. You can change which cookies are set at any time and find out more about them by following this link.