Vercel
clone written in Golang (Backend)
- Backend Languages: Golang
- Frontend Languages: JavaScript
- Database: PostgreSQL
- Message Broker: RabbitMQ
- Authentication: GitHub OAuth, Email authentication
- Session Management: Cookies and Sessions
- Microservices Communication: gRPC
- Object Storage: MinIO (S3-compatible)
-
Vercel (web server)
Vercel serves as the web server that
users interact with
. It is responsible for handling user requests to upload and deploy projects. Vercel communicates with separategRPC
servers for handling these requests. -
Upload (gRPC server)
The Upload service is a
gRPC
server responsible for pulling the repository from GitHub and uploading it toMinIO
, anS3-compatible
object storage service. Once the upload is complete, the Upload service sends the status back to Vercel. -
Deploy (gRPC server)
The Deploy service is another
gRPC
server that pulls the repository code from S3, builds the project, and uploads the distribution to S3. Similar to the Upload service, it then sends the deployment status back to Vercel. -
Request Handler (web server)
The Request Handler service handles requests made to the
project endpoints generated by Vercel
.