Marshmello is a Vercel-like service that allows users to build and deploy projects directly from a Git repository. It handles builds using AWS Fargate, reverse proxies S3 content, and communicates via WebSocket for real-time build logs.
I had initially set up this project live using AWS ECS, but unfortunately, I got billed $100 after leaving it running for a month. To avoid further costs, I have taken the live project down. However, here’s a recorded video showcasing the project in action: Project Demo Video.
Please note that while the UI was further improved after this recording, the video demonstrates the core functionality. You can also observe the logs being generated, which highlight the backend processes.
- Build and Deploy Projects: Clone from a Git repository and deploy the project on AWS ECS using Fargate.
- Real-time Logs: Receive real-time updates on project builds via Redis and WebSockets.
- S3 Proxying: Reverse proxy for serving content from S3, with customizable paths.
- Node.js API: Expose API endpoints to manage projects, builds, and deployments.
- Socket Server: Get build updates through WebSocket events.
This project consists of several components:
- API Server (
/api-server
): Handles incoming project builds and manages AWS ECS tasks. - Build Server (
/build-server
): Executes the build, uploads artifacts to S3, and reports progress via Redis. - S3 Reverse Proxy (
/s3-reverse-proxy
): Serves content from S3, supporting different subdomains.