HACKER Q&A
📣 hnjobaccount

How does one create a service like Vercel or Heroku?


As the title says, could someone lay out what would it look infrastructure/architecture wise to create one of those services?

I spend most of my time creating CRUD apps but I'm finding out I want to learn more of how the web really works.

For example, I know that for Heroku there are Open Source projects like CapRover [1] that fulfill similar needs. Would it be good to study the code of that project to understand how it works?

What technologies should I study? I'm thinking I should learn: * Docker * Nginx * AWS (S3, EC2, API Gateway, ...any other?)

Thanks in advance!! [1]: https://github.com/caprover/caprover


  👤 iddan Accepted Answer ✓
You would need: - Auth and billing to let users connect to your platform and bill them for usage - Source Control providers integration to get the code of your clients (e.g. a GitHub app) - Setup container builder service that can get requests from your platforms server and build Docker images of your clients code. Check out Google Cloud Build for inspiration - Call a cloud platform’s API to start a vm with the newly created Docker image and setup networking, logging etc for it