Kirsty Grant, Chief Investment Officer, Seedrs

When building a tech startup, choosing the right tech stack is one of the most important decisions you can make. It will either slow you down or give you a boost. It will dictate what engineers you’ll hire and if you succeed.

If you’re building a web-service or an app in 2020, full-stack Javascript is the way to go and here’s why.

#1 – The Browser

In the browser, you don’t have a choice. The days when static websites ruled the internet are long gone. If you want to create a modern user-appealing app experience, you are limited to a single option – JavaScript. That’s because Javascript is the only dynamic and collaborative language that can be used in browsers.

The main choice you have is which libraries to use. The most popular are React, Angular, or Vue, all of which are viable and won’t force you to re-invent the wheel. These libraries provide you with a lot of out-of-the-box solutions.

We prefer React because it has a huge community around it and it allows us to be very flexible with what we create.

Note: You’ll hear the term WebAssembly more in the upcoming years. It allows compiling any language to use in the browser. Although it’s already supported in all major browsers, we’re yet to see wider adoption.

#2 – The Back-End

On the other hand, the back-end has a lot of choices from Java, C#, PHP, and Python; you name it. All of which can get the job done, but some are better than others, based on your needs.

In the JavaScript world, we use Node.js to run JavaScript on the server. While a lot of languages were created for running programs on your PC (.net, C++) and only later adjusted for web, Node.js was designed for the web from the start. It’s built around the concept of concurrency and performance, making it extremely easy to do more things at once, effectively making it faster for your users.

We see a trend in successful companies that have their back-end system done in different languages and migrated their most performance-heavy web services to Node.js.

Additionally, Node.js plays very nicely with front-end libraries; it can prepare the code on the server (Server Side Rendering, important for SEO) while maintaining the fast & sleek client-side rendering. All this without any added effort. To achieve this, in Ruby, for example, you’d need to implement it twice – once for the client, once for the server.

#3 – Mobile

Mobile development is where it gets a little tricky. There are two approaches – develop for iOS and Android separately or use a cross-platform development, with the same code base. If you’re developing an MVP mobile app without rare hardware requirements, cross-platform development is what gives startups a lower time to market advantage.

We chose React Native for our app development, and so far it has not let us down. We’re able to write one code base and use it to release both Android and iOS versions.

It’s industry practice to develop an iOS version first. That’s where all the ideas and improvements get field-tested. Then adjust for Android, which takes two weeks to complete.

Note that if you talk to a native mobile developer to seek advice, it’s probable that you won’t hear anything good about cross-platform development. This is common for developers that have never experimented with React Native or other cross-platform tools.

Now, this approach does not fit all the use-cases. If you’re developing games or apps with a higher need for computational power, choose native development instead of cross-platform.

#4 – Modern JavaScript and Typescript

Javascript evolved massively in the last few years. If working with JavaScript 10 years ago was a pain, today it’s a pleasure. Javascript evolved into a modern and scalable language with a wide range of supported developer tools.

Typescript is a language that builds on top of JavaScript and introduces types, imagine it as a “dialect with benefits”. JavaScript developers need very little training to transition to Typescript. 

While Javascript excels in fast prototyping, it fails with larger implementations where large teams are involved. That’s where Typescript comes in and saves the day by bringing the advantages of typed languages.

Even if you use Typescript, you can still use all the Javascript libraries and resources.

#5 – The Speed of Development

The JavaScript ecosystem is enormous. With more than 1 million packages available, it has more code available for free than any other language (Java is 2nd with only 300 thousand).

What that means for you is that you do not need to re-invent the wheel, it’s highly probable that there is a community-supported code solving the most common cases, so you can focus your time where it matters – building your IP and your business.

With tools like React, Apollo, GraphQL, you can build your product within three months, instead of 12 months.

#6 – The Team

If you want to succeed, you need to be ready for change, and you need your teams to be ready too. This is where one language on the front-end, back-end, and mobile helps massively. You will need to have domain experts, but the barrier to check out other parts of the system is very low, meaning your team can help in other parts as well.

Imagine your front-end engineer is waiting for some changes to the back-end, but the back-end is written in Ruby. That’s a bottle-neck. If you’re using full-stack JavaScript, the engineer can go in and feel comfortable fixing the problem him/herself.

You can also share code between back-end, front-end, and mobile, which makes your product more consistent and development more effective.

But no matter what tech stack you choose, you will need manpower to implement your ideas. And perhaps the most challenging part of scaling is scaling your team.

That’s where JavaScript excels. According to the StackOverflow’s Developer Survey, JavaScript has been the most commonly used programming language over the last five years, which means there is a lot of engineers to choose from.

Summary

Choosing your tech stack is not easy. Take your time to weigh all the factors because it will affect a lot of your future decisions. If you’re not technical, get yourself a technical co-founder, or find a partner that can give you appropriate info to make the right decision.