Have you heard of AARRR? How about GRRRRR?
We don’t mean the 2004 French movie. We’re talking about our technology stack.
It might feel like developers are speaking a different language when you discuss your new product or app. We’ve said it before: It’s not necessary to have a technical background as the founder of a software startup. But there are some basics you should understand.
Technology stack, or “tech stack,” refers to the collection of programs, frameworks, and coding languages developers use. These function together like a stack of sieves transforming data at each floor. All the sieves are specialized to handle the kind of data they receive and provide another kind of data to the next layer. Hence the term “stack.”
The technology behind your new product can impact critical short-term factors like speed to market and project cost, as well as long-term factors like your ability to scale and ease of maintenance.
If you’re considering working with Belighted to build your new product, you’ll want to know our preferred technologies and why we chose them.
Why it’s important to understand “the stack”
A non-technical startup founder will need to understand the basics of the stack. This helps in communications with developers and more technologically savvy investors. It will also help to understand the strengths and limitations which could impact future choices.
As connoisseurs of code (and beer, coincidentally), we appreciate simplicity. Thus we have come to appreciate certain languages and frameworks more than others. We have put our energy into mastering them, so these technologies lend powerful advantages to the products we build.
Cost: Your tech stack can impact development and maintenance costs. For example, choosing a newer technology for your project can blow up costs because it’s harder to find supporting resources. Our stack helps keep costs down thanks to abundant high-quality libraries and open source codebases.
Time constraints: There are several reasons why speed is important to a startup. Consider time to market, for example. We’ve chosen the technologies that let us get the job done as quickly as possible without sacrificing quality. And because we have mastered them, we enjoy a double advantage when it comes to speed.
Flexibility: While one specific tech stack may not be appropriate for every single mobile or web application development project, our stack accommodates various projects effectively. This means we can work on a wide variety of products using the tools we’ve mastered.
Our preferred tech stack, GRRRRR
Our team is experienced across many technologies, but these are our major go-tos for building simple, elegant solutions to problems.
When we need to call up or manipulate information from a database, we prefer GraphQL. It’s a very flexible, efficient language that provides predictability and helps development proceed quickly. We find it a neat improvement over our previous choice, JSON REST API.
Redux is a way to manage the data you display and how you respond to user actions. It makes your application state more manageable and testing easier. It’s great across different frameworks.
React Native is the mobile-oriented version of React. It lets you build mobile apps faster, because you can use much of the code on both Android and iOS. It also makes it easy to use code specific to a platform when you need to.
Ruby on Rails
Ruby is the programming language, and Rails provides the structure, or framework, for the code. We love it for many reasons, but in a nutshell Ruby on Rails (RoR) supports agile development, simplifies debugging, and is overall easy to use.
There are some other necessary pieces, namely the Postgresql database system, Sidekiq/Redis for management of asynchronous tasks, and HaProxy, Nginx, and Puma as our HTTP server stack.
We also tap into a few other services like Amazon AWS, Tableau, AirTable, Snowflake, and Amazon Redshift, which can help early-stage startups make a great product.
Now you’ve learned the basic building blocks we use in our tech stack. In the coming weeks, we’ll walk through some of our favorite technologies in more detail. Stay tuned for:
- Demystification of Ruby on Rails
- React vs Angular: front-end development
- Hybrid vs Native for your mobile SaaS application