Skip to main content

Backend & DevOps

Expo Custom Build Server

Self-hosted build pipeline for Expo apps

Role
Backend developer
Category
Backend & DevOps

Overview

Expo Custom Build Server is a self-hosted alternative to a managed build service. Developers upload an Expo project, and the server queues and runs the native build.

Builds are processed asynchronously by BullMQ workers backed by Redis, so the API stays responsive while long-running jobs execute. Uploads are handled with Multer, build metadata is stored in MongoDB via Mongoose, and every REST endpoint is protected with JWT authentication.

The service is written in TypeScript on Express 5 and ships with PM2 process configuration, an Nginx reverse-proxy config and a deploy script for running on a VPS.

What I built

  • Built a self-hosted server that accepts Expo uploads and queues builds.
  • Processed builds asynchronously with BullMQ workers and Redis.
  • Protected all REST endpoints with JWT authentication.
  • Packaged for VPS deployment with PM2 and an Nginx reverse proxy.