This is the tech we use for this project. We offer installers that enable seamless installation across a wide range of operating systems – Linux, macOS, Windows, and others.
Web server
Nginx is a high-performance web server that efficiently serves content like HTML, CSS, images, and Javascript for web applications and websites.
Backend
Python is one of the most widely used programming languages in the world, particularly in fields like web development, data science, machine learning, and automation. Simple and versatile, it has a huge ecosystem of libraries and frameworks.
Python handles backend operations such as data processing, validation, authentication, database interactions, generating the initial web page, and communicating with external services or APIs. Additionally, it works in tandem with Javascript to process client-side requests.
We use Rust or C++ for applications where we require high performance or low-level system access.
Cache
Redis is an in-memory data store that's widely used to cache a range of data, including objects, web pages, session information, application state, database queries, and API responses.
Nginx can cache and serve a wide range of content, including static assets like HTML, JSON, CSS, Javascript, XML, and text files.
Search
ElasticSearch is a distributed search and analytics engine designed for fast, scalable full-text search. It allows you to store, search, and analyse large volumes of data quickly in real-time.
For small/medium-sized applications, a relational database can be used for full-text search and data storage.
Database
MariaDB is a relational database management system (RDBMS) that is a drop-in replacement for MySQL. Most website/app data is stored here, eg user information, content, preferences, transactions, and other details that need to be organised and accessed efficiently.
We use MariaDB, but you can swap it for MySQL, unless you're using certain features specific to MariaDB, in which case you will need to make adjustments.
NoSQL (Not Only SQL) is a type of database designed for storing and managing unstructured or semi-structured data. NoSQL databases allow data to be stored in a variety of formats such as key-value pairs, documents, graphs, or wide-columns.
NoSQL databases are typically used in applications that require scalability, high availability, and performance. Examples include social media platforms, content management, real-time communication systems, logging, and data analytics.
NoSQL database options include MongoDB, Cassandra, Couchbase, CouchDB, and Redis.
Frontend
Javascript is used to add interactivity and dynamic functionality to a website/web app. Used alongside HTML for structure and CSS for styling. Javascript interacts with backend code to send and receive data between the browser and the web server.