The most important decision in any project is picking the right tools for the job. Developers call our tools a “Tech Stack” because it sounds neat, and visualizes the way software tools work together. In broad terms we have to pick a tool to store the data we need, a tool for making the user experience, and a tool to communicate from the data storage to the user experience. Stacked on top of each other, these three layers describe an entire program, or web app.
Startups with in-house developers agonize over which languages to use. In a field that evolves as rapidly as software, there’s always something new, innovative, and trendy to try. Every tool solves a particular problem really well, in its specific domain. Picking the right tech stack depends on what your team is building, the domain of problems you’re solving, and your business model. Developers also have to consider how many people are on the team, long term business plans and growth, and getting buy-in for their chosen stack.
When Pixeltree works with our clients we know what stack we’re going to use. Ours is a collection of tradition and trendy, in just the right blend to build a stylish, scalable, well performing first product to launch a business off of. And there are decades of experience that lead Pixeltree to pick this stack.
The workhorse of our toolkit is undoubtedly Ruby on Rails. With one tool we can cover all three elements of the tech stack. It has built in solutions for storing data, for building a user experience, and communicating that data between the two. Rails (as it is often shortened to) is a mature tool, first released in 2004 and still plays a role in some pretty recognizable brands:
While Twitter fully moved away from Rails in 2011, it chose to do so after scaling to millions of users.
The real power we get from Rails is a combination of speed and safety. There are many conventions in Rails that help us storm right past the easy choices and let us focus our effort into the most critical and challenging problems our clients need to solve for their competitive advantage.
As amazing as Rails is, it’s not perfect. Currently, it isn’t the best tool for building the most rich and dynamic user experience pieces we all expect online. We extend Rails with another tool called React. React is a tool built by Facebook and drives their user interface development on Facebook, Messenger, Instagram. It’s the flash in our Tech Stack, it’s new and trendy. And it’s powerful. We build a lot of our user experience in Rails, but when we need some more visualization power we use React.
Building with Ruby on Rails and React as our stack aligns the values of our team’s software development practice with the value we try to bring to the clients we love.
React is trendy, and it’s trendy because it’s a great tool. That means there’s a lot of up and coming talent learning it and building with it. It opens the door to a great pool of talented Junior Developers in the Calgary ecosystem, who we love to grow alongside. Mentoring Junior Developers is at the root of Pixeltree, and allows us to nourish the blossoming tech community that we came from.
Ruby on Rails is our foundation. It’s a mature tool, that we describe as being “heavily opinionated” about how to work with it. Opinionated tools are structured to enforces programming practices, which crosscuts some important concerns for us.
Part of the Junior Developer journey is the beginning, where you’re drinking from a firehose of knowledge every day. Every problem we tackle with Rails has a theory of practice behind it, and a “proper” way to solve it. We lean on that best practice to remove guesswork that can come from inexperience. Our whole team can push in the same direction because of those best-practices.
That mix of trendy React tools resting on a battle-tested ecosystem of Rails lets us build solid apps. And while there’s not many schools keeping Rails in their curriculum, we’re getting pretty good at teaching it ourselves. We have yet to come across a problem that our stack, and our team, can’t handle.