We’ve discussed many times the importance of a thorough design process, but once you’ve designed your product, how do you choose the best technologies to build it?
A technology stack is a term used to cover the collective programming languages, frameworks and tools used by developers to create mobile and web applications.
We often think of an application as being split into two main components: The front end and back end (or sometimes the client-side and server-side). A stack is built from layering one application on top of another. This is built using a combination of code, generic and specific modules.
- Powerful and easy to use
- HMRC & RTI compliant
- Used by payroll pros
- Great for entrepreneurs
- Powerful data analytics
- Manage sales and data
- Great for startups
- Powerful web page builder
- E-commerce available
- Great for marketing
- Better than lists or sheets
- Manage social media
- Launch your website fast
- Powerful data intuitive
- No coding skills needed
A technology stack can contain many different layers of elements that allow developers to create software solutions.
Tech stacks are usually managed and built using many tools. It is important to choose a tech stack with tools that work with you and that you don’t have to fight with while building your project.
Sometimes there isn’t a right or wrong answer from a technical point of view, so if you don’t like a particular tool, then choose a tech stack with a reasonable alternative that performs the same function but that you are more comfortable with.
Making the right choice
With such a choice of technology stacks available, it can be easy to become confused when choosing the right one.
More often than not, someone will choose a stack simply because it is either the newest or it is the easiest to learn for their development project, but they cannot be sure it is the best choice.
Sometimes the criteria for selection will be a tech stack that developers are already familiar with because they would have worked before with the tools and languages it contains.
As time has moved on, new tools and technologies have been created, meaning it is really important that you choose the right technologies for building your project.
Some of the factors you should consider when reviewing your technology options are:
- ease of use
- cost
- features and limitations
- future-proofness
- cross-platform compatibility
- ability to integrate with your other technologies and processes
- security and maintenance required
- performance and speed
- scalability
- availability of support and problem-solving
Fifteen years ago it was easier because lots of people used the same technologies, for example ASP.NET on the front end, SQL Server on the backend and .NET on the middle tier.
Project developers these days have to build something more. The need to create something that has flexibility, scalability and security that meets the requirements of the project but is also future-proof.
It’s also important to remember that your choice would also impact other aspects of your business, including finance, marketing and HR.
The anatomy of your technology stack
Before choosing your technology stack, you should carefully consider all the factors you need for your web or app project. Your decisions should be tied into your overall digital strategy.
You will need to understand all of your requirements to be able to make the right choice. It can help to look at different tech stacks in use by others today to give you an idea of which tools and elements would work for you.
While it may feel safer to stick with time-proven and familiar technologies, don’t close off your mind to new developments that might better enable to create a stack with more scalability and higher functionality to give you an edge over your competition.
Here is a list of some of the available tools and frameworks currently combined and used in a tech stack:
Front end:
The front end is the client-side of your application where the interaction with your user happens. Interactions will happen through the website or web app or mobile app, depending on what is being used.
Your front-end is very important as it is the client-facing element of your design, so every aspect here needs careful planning, especially around UX writing and UX design.
The three main technologies used in the front end are:
- HTML (the markup language)
- CSS (the style sheet)
- Javascript (the browser scripting language)
Broadly speaking, there are two leading JavaScript frameworks commonly used today. These are AngularJS by Google and ReactJS by Facebook. Both of these frameworks allow you to create highly intuitive user-interfaces but it doesn’t matter which one of these you choose as both are language independent. Either will fit in and work optimally with whatever technology stack you use.
A popular choice of frameworks for CSS is Twitter’s Bootstrap. It has interactive components built on JQuery.
So, as one possible example, your front end might consist of these elements:
- Backbone.js
- Bootstrap
- CoffeeScript
- CSS
- HTML
- JavaScript
- jQuery
- Less CSS
- Socket.IO
Middleware:
Middleware consists of web servers, application servers, content management systems, and other tools that act to support app development and delivery.
Your middleware is your sandwich filling or the glue that holds the front end and the back end together. Sometimes written in Java and C#, middleware manages the communications and data between the layers of the stack and acts as the translator layer that connects the two applications together. Middleware technologies include TIBCO, CICS, Virtia and MQ.
An example of your middleware could be:
- JVM language – Java, Scala or Clojure or a mix
- Node.js
- Ruby on Rails
Backend:
The server-side or backend often consists of a server, an application – OS, Web server, Programming language, Web framework – and a database.
It is the backend that responds to user requests and actions simple operations such as accessing the database, read, update, create and delete etc.
Two popular backend stacks used by developers today are Python and LAMP. LAMP is short for Linux, Apache, MySQL and PHP. Many developers use Python-Django framework for creating a quick prototype.
So your backend could consist of:
- MongoDB – if PostgreSQL is not used
- PostgreSQL
- Redis
- Solr – if search is needed
- Some message bus – RabbitMQ, ZeroMQ, or Redis
Consider your type of project
The type of project you are working on will also determine which stack to use. For example, a small project with a short deadline would only need the simplest of technologies, such as CMS or WordPress. Whereas a mid-range project would need a more involved approach using a combination of programming languages such as Java and C# to provide the developers with a variety of functionalities and better integration across different platforms.
More complex projects may involve developers in creating web apps with several functions. Here they would choose to work with different web technologies and several programming languages. You would also need to pick technologies that are easily testable as your project may call for Test Driven Development (TDD) to ensure the highest quality and speed.
While it is always important to keep quality front and centre to ensure you do everything properly, the technology you use isn’t the only thing that matters. Before you go ahead with your project, make sure that you have the right design in place that perfectly meets with the requirements of your target audience.
Do not hesitate to get in touch with our friendly team at Creative.onl should you need any assistance with your project. You can also get a personalised report for your creative project.
FAQ
A technology stack is simply a list of all the technology services used to build and run an application – whether this a simple content website, a mobile app or enterprise software, each will have a set of technologies used to make it work.
You should make sure that your digital product uses a modern technology stack for a few core reasons: performance, scalability, future-proofing, and security.
There’s no simple answer to this question, but probably the most common technology stack used for simple websites is HTML, CSS, Javascript, PHP, Apache and MySQL.
If you want to completely change the architecture of your website or software then this will probably mean completely rewriting the whole thing from scratch. But many technology tools are designed to connect to each other and work together, so a better option might be to implement a series of upgrades over time.
In computer and web tech, “full stack” means the entire system or application, including the front end, the back end, and any services which connect the two together.
There’s no set rule here, but a very common web development technology stack is referred to as “LAMP”, which stands for the Linux operating system which is common on web servers, Apache server, MySQL database, and the programming language PHP.