Don’t Buy a Pig in a Poke, Select a Tech Stack for Your Project
Alexey Kalachyk
CEO & Co-Founder at Fively (Software Development) / Co-Founder at DogQ.io (Zero Code Testing Automation Tool)
Planning a new project, you may think about its features, monetization, marketing strategy, and other essential aspects. Then you’ll turn to choose a contractor and see them offering different expertise and toolsets. It would be useful to know the preferable technology stack at this stage. Otherwise, you may discover that you can’t get your ideas translated into a solution correctly. What’s next - redesign, redevelopment, and more payments?
This article is our attempt to save you from the sad consequences and provide additional information so that you figure out what technologies your project will be based on.
Meaning and Structure
A technology stack is a data system for making and running web and mobile solutions. It includes programming languages, specific tools, databases, frameworks, components, hardware modules. The two basic parts of any stack are client-side or frontend and server-side or backend.
Frontend
Client-side encompasses the elements that users see. The general requirements for this part are convenience and a satisfying user experience. The front-end part is like a facade that holds on the building structures - pieces of code written in certain languages. The languages vary depending on the way of technical realization, or in other words, on web or mobile development.
An online store in a browser is a clear example of front-end web development. Considering the coding part, here are the most popular preferences:
- HTML - for website content creation and displaying;
- CSS - styles and representation of the HTML components, fonts, colors, size;
- JavaScript - for creating dynamic objects and interactivity;
- React, Vue, and Angular - JavaScript frameworks for adding more functionality;
- CSS extension languages - for overcoming the limitations.
When working on frontend, you’ll also need the tools for version control, QA, and deployment.
Depending on platform compatibility, the front-end technologies for mobile are classified into native, hybrid, and cross-platform ones. The most popular programming languages for mobile frontend are Kotlin and Java for Android; Objective-C and Swift for iOS; Java, C++, Xamarin, and C# for cross-platform app development; JavaScript, CSS, and HTML for hybrid apps.
Backend
Users don’t see the back-end part but it is even more important for the whole solution than the visible part and can be compared with an engineering section of a ship. Server-side is responsible for a synchronized functioning of a solution, business logic, and management of databases. Backend includes a server, an operating system, databases, frameworks, APIs, storage, and hostings. PHP, Java, Ruby on Rails, and Node.js are popular programming languages for server-side development.
Factors to Consider
Project Scope
Small-sized projects are usually implemented with less complicated technologies while medium and large-scale projects imply the usage of several languages and a set of tools, which makes a tech stack more sophisticated. You can use a site builder to create a blog but it won’t help if you need a top-grade online store.
Time From Initial Idea to Finished Product
A suitable tech stack can speed up the working process and reduce the time to market. The word ‘suitable’ means that there is an ecosystem to accelerate the development process and there are specialists who are proficient in that.
Scalability
Someday you will want your business to grow, so make sure that the frameworks and components to be used are scalable. Besides, you might want to integrate third-party solutions to the existing one, which requires corresponding technologies.
Costs
If you are a startup with a limited budget, you’d better choose popular stacks with proven effectiveness like JavaScript. It will be easier to find qualified developers and you won’t pay a fortune to maintain the solution.
Fively Tech Stack
Any software development company prefers using certain stacks. At Fively we prefer technologies that allow us to release projects without time losses, validate your ideas, and scale solutions when the clients need that. Here’s a part of our tech stack list:
- Backend: Python, Node.js, PHP, .NET;
- Frontend: React, Angular;
- Mobile: React Native;
- Cloud Architecture: AWS Services;
- Databases: MySQL, PostgreSQL, Mongo, Redis, Redshift, Dynamo
What is your experience with choosing technology stacks? We want to hear from you!