Backend & DevOps
Expo Custom Build Server
Self-hosted build pipeline for Expo apps
- Role
- Backend developer
- Category
- Backend & DevOps
- Links
- GitHub repo
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.