Ruby on Rails Development

Building MVPs, adding feature to existing apps, and scaling your SaaS. We do it all.

Deployment Service

Get off Heroku and deploy with Kamal! We set you up on bare metal servers and help cut those large PaaS bills.


From the Blog

  • What to Do When You’re Laid Off

    A guide for software engineers. Alright, you’ve been laid off. Shit happens! But guess what? It’s not the end. Everybody gets randomly punched in the face sometimes. This is just another challenge to overcome on the way to the next amazing job. 1. Feel All the Feels, Then Move On Mad? Sad? Feeling like crap?…

  • Should I fix the terrible app I inherited? Or totally rewrite it?

    Assuming this app is larger than a one day to one week rewrite (for yourself or your team) then the question has to be asked: Do we completely rewrite this app as a new v2 or do we refactor the existing code base? Size and scope The biggest problem of an inherited app is that…

  • Should I use a Struct or an OpenStruct (Ruby)?

    At first glace the choice between using a `Struct` or an `OpenStruct` is just preference. They are very similar and (mostly) behave the same way. Pretty similar, right? Actually there are some differences and these should inform your choice. The choice revolves around the specific characteristics of your data structure so lets look at those.…

  • Why do we Bundle exec (re-examined)

    Why do we prepend so many commands with `bundle exec`? For example: Prerequisite knowledge What is Bundler Bundler is a dependency manager tailored for Ruby projects. Its primary role is to ensure the accuracy of gem versions within a given project. Bundler does this by creating a separate environment for each Ruby project on your…

  • JavaScript Hoisting intro

    Hoisting is where a variable and function declaration is moved to the top of its scope during compilation. This means that variables and functions can be used before they are declared in the code. You should know that since the declaration is hoisted but not the initialization of the variable the variable will be undefined.…

  • How to get the min and max from an Array (Ruby)

    Arrays have a couple methods to get the minimum and maximum. Three common ones are .min, .max, .minmax. .max will get you the maximum value. .min will get the minimum value. If you need both the minimum and the maximum from an array then the best solution is using the ruby method minmax. It will…

  • JSON Web Token basics

    A JSON Web Token (JWT) is an internet standard for representing claims securely between two parties. JWTs contain three parts: the *header*, the *payload*, and the *signature*. They are joined together by `.` to create a JWT like: `aaaaaa.bbbbb.ccccc`. Example JWT Decoded Header Payload Signature Encoded When to use a JWT? – Authorization – After…

  • React Component Intro

    React, a popular JavaScript library for building user interfaces, is known for its component-based architecture. A React component is essentially an independent, reusable piece of code that returns HTML to be rendered on the page. These components are the building blocks of React applications, enabling developers to create complex UIs from small, isolated pieces of…

  • Stimulus Intro

    Stimulus is the Rails team JavaScript framework which intends to provide an elegant and simple solution to enhancing HTML interactivity without reaching for the complexity of a full Single Page Application (SPA). It’s meant for developers looking to augment their normal Rails, server-rendered pages with just a bit of client-side JavaScript. Stimulus is used to…

  • Binstubs

    Binstubs, short for “binary stubs,” are small executable scripts that act as wrappers around Ruby executables or scripts. They are commonly used in Ruby projects managed with Bundler to provide a convenient way to execute commands without needing to prepend them with bundle exec. When you run `bundle install –binstubs` Bundler will create a bin…