Choosing the technology in which you build your web application or internet business is not a purely technical decision. It is also a business decision. And even very business-like.

And at this point I would like to give you a little hint on how to choose the technology stack for your web application or any other IT project.

We recently launched our mobile applications in Deor. Re-premiere of the same applications. Tuned, greatly improved. But still the same. Why is this so? Because for several months we did not have a person with competences in the technology in which we previously developed mobile apps. In the meantime, the backend has changed, followed by the API. Endpoints that previously returned something now return something completely different. And that crashed the apps. Later on we got to the point where we started hiding these applications from the world, because too much of the functionalities did not work like they should. So bringing them back to life now is something we celebrate in full.

Did we make the wrong decision in terms of technology selection? No, I still think the technology stack is good. But this decision certainly had a big impact on business. And I – too focused on other aspects of the business – did not notice the threats posed by this decision in time. Purely business threats that have materialized here.

Why, then, the choice of technology for a product / web application should be treated as a business decision, not purely technical / technological? Because if you choose technology:

✅ not very developmental, something that has already had its glory days in the past – sooner or later you will have to rewrite at least part of the application

✅ old, not adapted to the needs of today’s world – sooner or later you will start having problems and you will have to rewrite the whole thing from scratch

✅ which is slow to code/develop and the applications are heavy and resource intensive – you will develop slowly and everything will be expensive

✅ which is bypassed by better programmers and treated as worse – you will have a problem with getting good developers

✅ suitable for simple applications, but not the best for larger algorithms and scaling – sooner or later you will rewrite at least part of the application or end up maintaining two parallel technology stacks

✅ in which hardly anyone writes – you will have trouble finding developers

✅ where developers are expensive – each subsequent recruitment will cause a big gap in your budget

There is really no one particular good technology for every type of business. I know companies that created their products in technologies that I would not personally approve of in their situation, and which later did not weigh on those decisions. I also know reverse examples.

The most important thing is to remember that the choice of technology in which we create our product is also a business decision and should be made just like any other decision of this type – not only based on your own preferences and willingness, but also based on market analysis and other external factors.

So… how to choose the technology stack for your web application? Which will be the best?

It’s not so easy to choose one. And not only that, very often in the future it will be difficult for us to clearly assess whether the decision we made was right or not.

So let me share my personal framework that I use in the context of choosing the technology stack for the product I’m going to create.

1. Do I need to code it or can I use some tool to create this product?

In recent years, all kinds of no-code / low-code solutions have gained enormous popularity.

Of course, this popularity would not exist if it were not for the enormous possibilities of these tools. Nowadays, we do not need to be able to code ourselves, and we do not need a developer to create a simple mobile application or something on the web. There are tools on the market in which we can build our product without writing a single line of code.

If that’s enough for us, I have a decision and let go of the next steps.

2. So maybe RPA?

Well-programmed RPA (Robotic Process Automation) can automate many business processes. And since it does it really well, maybe it will be a better idea to use this kind of solutions, than to write something from scratch, then maintain it, develop, etc?

If we can go in that direction, I have a decision, let go of the next steps.

3. However, if we still need to code… what are our competences on site?

What programming language / technology do I and / or the team members know? On what level? What are these technologies, what are they for, what can be done in them?

I make a list, assign the appropriate parameters, weights, etc.

4. What do I need to maintain the product in these technologies?

It’s one thing to write code. Once you have it done, you have to deploy it somewhere, maintain it and scale it up. So what exactly do you need here? Any special servers, hosting plans, clouds, devops competences, special environments, maybe something else?

I’m making a list.

5. Business research

And here we come to an interesting point that really determines whether I will use the technology or not. Because maybe we have competences, and we would be able to create a product, but what if it comes out slow or expensive? Either slow and expensive.

At this point, I check the popularity of these technologies on the market, whether they are declining or growing, what others  developers write about them, how much tutorials and other educational materials is available on the web, how much developers earn, in which markets, how expensive will be to maintain them, how expensive will be the further development, are there any alternatives, what are the capabilities of these alternatives, etc.

There is never a simple answer here. There is always a lot of ‘buts’. Sometimes it will turn out to be expensive, but it’s worth it. Sometimes cheap, but not really worth it. Sometimes it will turn out that it is worth starting with x, but at the moment y start trying to change for z. And sometimes something else.

However, the numbers must be ok in the end. If they are fine, I have a decision. If not, I choose the best looking alternative and go back to step 4.

So what to choose? What’s the best?

There is, of course, no one right answer. Choosing the technology in which you build your business / product / application is a difficult decision. Even very difficult.

Of course, it is also easier to say how to choose the technology stack for your web application than what specific technology to use. Especially because technologies are changing, as are trends, habits or the possibilities of specific solutions.

The most important thing, however, is one thing: it is important to make a decision based on research. Consciously, and without prejudice.

And it should also be remembered that it does not have to be the final decision. And although the better you make the decision at the beginning, the easier it will be in the future, you can always rewrite the application (although it is difficult and expensive, it is possible). Anyway, you can also always pivot.