A modular cloud deployment platform that automatically builds, deploys, and hosts web applications β inspired by Vercel.
This project demonstrates a multi-service deployment architecture with independent services for build processing, deployment management, and request handling. The system is designed using backend and system design principles such as separation of concerns, fault isolation, and scalability.
Wercel allows users to deploy frontend applications by:
- Cloning a Git repository
- Uploading project files to object storage (Cloudflare R2)
- Building the project in an isolated environment
- Deploying production artifacts
- Serving the deployed application
The platform is implemented using a modular architecture where each service performs a specific responsibility.
The system consists of Three independent services:
- User submits Git repository
- Wercel clones repo locally
- Build service compiles project
- Deployment service publishes build output
- Request handler serves application to users
Repository: wercel-frontend
The platform provides a simple web interface where users can deploy applications by submitting a Git repository URL.
- Input box for users to submit Git repository URLs
- Initiates deployment workflow through backend API
- Displays deployment status and progress
- Communicates with Wercel control plane via REST APIs
Repository: [Private]
- Handles project creation and deployment requests
- Clones user Git repositories locally
- Manages build job orchestration
- Builds the project on VM or locally
- Tracks deployment state and workflow
- Push the built artifacts to CloudFlare Object store
Key Concepts
- Backend service architecture
- Job orchestration
- Service communication
- API design
Repository: [Private]
- Handles incoming user traffic
- Routes requests to deployed applications
- Serves static files
- Optimized for performance and low latency
Key Concepts
- Request routing
- Production serving
- High performance systems
- Backend: Node.js
- Frontend: React.js
- Containerization: Docker
- Storage: Cloudflare R2
- Communication: REST APIs
- Version Control: Git
- Modular multi-service architecture
- Separation of concerns
- Independent service deployment
- Scalable build pipeline
- Fault isolation between services
- Automated deployment workflow
- Object storage based artifact management
This project was built to understand:
- Cloud deployment systems
- CI/CD pipeline design
- Backend system architecture
- Microservice-style design
- Scalable infrastructure principles
- Production deployment workflows
- Message queue for job scheduling
- Distributed build workers
- Load balancing
- Custom domain support
- Deployment rollback system
- Monitoring and logging
- Authentication system
- Handling Enormous traffic and Parallely jobs
Madhav Kumar
GitHub: https://github.com/Kmadhav824