Tech Stack
Maileroo is made up of at least 20 different components or microservices that work together to provide a seamless email delivery experience. Here is a list of the technologies we use to build Maileroo.
Frontend
- Laravel: This is the main framework we use to build Maileroo sales website.
- React: This is the main framework we use to build the Maileroo dashboard.
- Bootstrap: We use Bootstrap to style both the sales website and the dashboard.
Backend
- PHP: We use PHP to build the backend of the Maileroo sales, dashboard, and admin panel.
- Golang: Most of our core infrastructure is built using Golang. There are over 20 different microservices written in Golang.
- Node.js: One of our MTAs is built using Node.js.
Database, Caching, and Queuing
- MySQL: We use MySQL as the main database for Maileroo data.
- Redis: Session data and caching are stored in Redis. We also use Redis for queuing jobs and emails.
- MongoDB: We use MongoDB to store logs, emails and other data that doesn't fit well in a relational database.
- Pebble: We use Pebble as a key-value store for storing temporary data in our DNS nameserver.
- S3 Compatible Object Storage: We use S3 compatible object storage to store images and other files uploaded by users.
- RabbitMQ: We use RabbitMQ to queue emails and other jobs.
Tooling
- Ansible: We use Ansible to automate the deployment of our servers and services.
Infrastructure
- Bare Metal Servers: We use bare metal servers to run our heavy workloads and databases.
- Virtual Machines: A lot of our microservices including MTAs run on virtual machines.
- BunnyCDN: We use BunnyCDN to serve static assets and images on the Maileroo sales website.
Communication
- Zendesk: We use Zendesk to provide ticket support to our users.
- Crisp: We use Crisp to provide live chat support to our users.
- ProtonMail: We officially use ProtonMail for all our email communication.
Honorable Mentions
- Nginx: We use Nginx as a reverse proxy to route traffic to the appropriate microservices.
- Cloudflare: While we don't use Cloudflare for our main website, we use it to protect *some* of our APIs.
- ClouDNS: This is our primary choice for DNS hosting.