DEV Community

loading...
Balio

Our Stack at Balio.app

aleixmorgadas profile image Aleix Morgadas ・3 min read

We, Balio, aim to create the platform that helps you to improve your personal finances.

To do so while being a small team with limited resources (as any other startup), we had to choose wisely which technologies would benefit us to reach that goal.

Our needs

We considered the next key points to choose the technology:

  • ✅ Should be a stable technology. We don't want to focus on technological challenges, our focus is the product itself.
  • 🔄 Should help us iterate faster. It should be easy to add new features, either by adding an extension or using a third party solution that supports the technology. In addition, it should be easy to remove features that didn't work out.
  • 👩‍💻👨‍💻 Hiring/Externalizing. We should find talent in our city with experience with the technology. Or, we should find consultancy companies that offers people with expertise with those technologies in a reasonable price.
  • 📚 Resources and affordable learning curve. Available learning resources, best practices and good community behind them.

What we chose

Frontend

Frontend Technologies

React with TypeScript and Jest. We started working with a paid React Bootstrap Template with some components already built in.

That helped us to ship sooner since some of the default styles were similar to our brand guidelines. We only needed to make a few adjustments to make it "good enough" for us.

We chose React since:

  • It's enough stable
  • There are good libraries for almost all use cases
  • Good tutorials and learning resources
  • There are Bootcamps in our area that teach React. So, we have a bigger hiring pool compared to other frontend technologies

Backend

Backend Technologies

For our main service, we use Django Rest Framework with a PostgreSQL Database.

Django Rest Framework provides us various things:

  • It has a huge community behind
  • Most of the issues you find are already solved in Stackoverflow (hehe 🤣)
  • Straight forward way to create CRUDs.

We don't need/have complex domain logic yet. We need stupid models, verify that they are used and then, maybe, add complex business logic.

We know that this might backfire us in the future in case the models explode in complexity

  • It has different libraries to do most of the things we need, plus some external platforms we use provide a library for Django already.

For the support services, we use an AWS Lambda with a DynamoDB as Storage.

The support services are often used only by us. They don't require to be stable and they don't usually change.

Cloud

Cloud Technologies

On the Cloud side, we initially invested 2 weeks in setup everything to be as automated as possible.

We have chosen AWS because it's where we have more experience with.

To setup all the required infrastructure we used Terraform. We chose to do that at the beginning because, in my experience, adding it afterwards might be more painful than earlier.

So, we automated at an early stage:

  • Infrastructure
  • Service Deployment
  • Continuous Integration Pipeline

We will do another post sharing how we automated this part 😁

And... the App📱?

Not Found

We know... we know... 😅. We are working on it. Following post we will share which technology we chose and why 😄.


And you? Which Tech Stack would you had chosen instead?

thinking

Discussion (0)

Forem Open with the Forem app