When a product or service is designed there are multiple elements that need to be decided. This includes hosting, front-end, APIs, database, data storage and so on. These choices in combination solve the complete problem and make one tech stack.
For example, hosting with Amazon Web Services and using MySQL for a database. If any changes are made to these choices or additional variables are added it can change the tech stack.
Ultimately your tech stack should reflect the needs of your business and fuel your business’s growth and continuously deliver value to your customers.
- A tech stack is a combination of software, programming languages, tools, libraries and frameworks used to develop an application.
- Typically split into two sides:
- The front-end side refers to everything the user can see and interact with.
- The back-end side is the invisible part for users such as servers.
- Key tech stack components: front-end (framework, HTML, CSS and JavaScript) back-end (programming language, hosting, database, DevOps tools, server).
- A perfect tech stack is important to fuel your business growth and continuously deliver value to your customers.
What is a SaaS tech stack?
A SaaS tech stack is a combination of the technologies, programming languages, tools, libraries and frameworks used to develop an application for either the web or mobile.
Firstly, a SaaS tech stack is split into two different sides and consists of the front end and the back end. The front-end side of the application tends to refer to everything the user can see and interact with onscreen. This includes the application’s design and format. The back end on the other side refers to the invisible part for users. This refers to frameworks, servers and operating systems.
Firstly, it is important to understand a SaaS applications architecture as it is preferable to have a tech stack guided by your architecture.
What is SaaS Architecture?
SaaS is a cloud-based subscription service, which makes software easily accessible over the internet. It removes the need to download software onto your computer, and thus is able to provide regular updates and support.
There are two architectures for application development in the SaaS industry:
- Single-tenant this type of architecture doesn’t require users to share their data as it lets them just use an instance of the software.
- Multi-tenant on the other hand enables SaaS companies to use a single instance that is able to support multiple servers. With this architecture, a user’s data is isolated which eventually increases visibility.
It is recommended when building a SaaS app to do so on a multi-tenant architecture as it offers more long-term benefits, such as cost-saving, code reusability, upgrades, etc.
How do you build the perfect SaaS tech stack?
A tech stack has key components that need to be included in both your front end and back end.
Front End Stack for SaaS
Framework
React is an increasingly popular library used by fintech and SaaS companies for front-end development. React is a JavaScript library for creating unique and interactive interfaces. The main feature of the framework is that it is divided into different components. This helps to make applications faster and more efficient.
HTML
HTML is a core component of any web project and is used to structure content on a page as well as specify the kind of information a web page will display to the users.
CSS
CSS helps developers to style the HTML page in a polished way that is then viewable to users. As well as providing style CSS can provide responsiveness to an application.
JavaScript
JavaScript makes an app or web page even more interactive. It does this by enabling developers to create sitemaps, pop-ups, contact forms and more. It makes user engagement interesting and attractive.
Back End Stack for SaaS
Programming Languages (Python, PHP and C++)
Each programming language has its own use. For instance, Python is a general-purpose programming language that has a simple syntax and coding process. As a result, it speeds up the development of websites and software builds. Whereas PHP is a widely used scripting language and is perfect for a SaaS startup. As it can empower its website’s back end. Finally, C++ a cross-platform language can be used to create high-performing applications and can integrate all the components of C with additional features for large web applications and video games.
Database
A database is an organised collection of structured information such as data, records and files. They are typically stored electronically in a computer system. Popular databases are MySQL, MongoDB and PostgreSQL.
DevOps Tools
DevOps tools help teams to automate manual tasks, manage complex environments at scale and keep developers in control. Widely used DevOps tools include Jenkins, Kubernetes, Ansible, ELK stack, etc. they are used to build continuous integration and delivery pipelines in line with DevOps methodology.
Server/Hosting
A server is an important aspect of a technology stack as server hosting is an infrastructure delivery model that provides users with remote access to server resources. These include CPU, memory, disk, etc. in order to power apps and store data without having to invest, configure and maintain server hardware themselves.
Widely used and popular options include Amazon Web Services and Microsoft Azure.
APIs
APIs are used as bridges to establish a connection between server and client. They are designed to help the server pull the necessary resources such as data and transfer it into the database.
All these services, as well as others such as data storage, event brokers etc., play an important role in your back-end side. It is therefore important to select the optimal set of tools for your particular project.
SaaS Tech Stack Quora Example
I pitched a question to Quora and asked the community “what is Quora’s tech stack?” the top answer was from Xavier Amatriain, a former Product Operations Engineer at Quora.
Quora use mostly Python for its development because it is an excellent programming language for many reasons. One reason was the speed to push out performance-critical code to backend servers. As well as having a lot of confidence that Python would continue to evolve in a direction that would be good for Quora’s codebase.
In addition to Python Quora uses C++ to squeeze the most out of its CPUs. A good example is when they wanted to implement some machine learning algorithms. Finally, they also use Javascript for the front end and use some Objective C for iOS and Java for Android native development.
As for databases, they use MySQL as our general-purpose database. More and more they have moved many of their use cases to non-SQL solutions, mostly HBase. In very specific cases they have had to use in-memory databases such as rocksdb.
Within the data and streams management layer, they use Scribe for log processing, Kafka for data streams and Spark for managing big data in general. In the past, they have used Hadoop Map Reduce, but have now moved almost all use cases onto Spark.
At Quora, they develop everything in the cloud and more specifically in AWS (although they do have some smaller use cases in the Google Cloud). According to Amatriain, there isn’t a single desktop or workstation in Quora. All developers have a remote “machine” in the cloud where they develop their work using a laptop as an interface.
As for teamwork tools, they use standard tools like Git for source control and use both Phabricator and Asana for task management. However, the former is closer to our continuous deployment process. For other things, such as unit testing management, we have developed our own internal tools.
It is an interesting insight into how Quora works and how its tech stack reflects the nature of its business.
Source: Ruby Garage
Tech Stack Considerations
It is important to consider the following factors before or after you’ve decided on your perfect SaaS tech stack as they could save money and fix future problems.
- Do you understand your organisation’s needs and resources?
- Have you adopted an MVP approach?
- Do you know the size and scope of the project?
- Have you differentiated your tech stack from your competitors?
- Are you futuristic with your thoughts and investing in agility?
Why is a SaaS tech stack essential?
Building a scalable and secure SaaS requires a complex technical stack that includes many components that need to work together seamlessly to provide a good customer experience. Getting past the MVP stage while maintaining speed and agility requires careful planning and execution.
The right tech stack for your organisation is important because it ultimately determines an application’s scalability, functionality and viability. This is why it is necessary to make the right decisions for your tech stack based on what your company needs.
Are you looking to connect your Tech Stack? Then try a free trial of Cyclr today and simplify your integrations.