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.
  • LavinMQ: We use LavinMQ as a message queue for our microservices and emails.

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.