About this website - Technologies and infrastructure

I decided to create this website with some restrictions:
  • Performance: It has to be fast and light.
  • Proper technologies and infrastructure: React + Typescript for the Frontend, Go Programming Language for the backend and GCP, AWS or Azure for the services.
  • Price: as cheap as possible without ignoring the other restrictions.
That's why I used the following technologies:
  • MongoDB Atlas as database. Free forever with 512 MB of storage, which is more than enough for this project.
  • GCP Artifact Registry to store and manage docker images. Each image is a Go HTTP service for the static HTML and the GraphQL API. Almost free for a project like this.
  • GCP Cloud Run to run the website in a fully managed infrastructure. Cloud Run scales applications based on the number of requests, for this website those won't be a lot so Cloud Run will scale to zero the number of instances, which means cold starts. To avoid cold starts, a minimum of instances need to be used. In total this will cost 8$ per month.
  • GraphQL as query language for the API.
  • Next.js as React framework using static generation and exporting static HTML to have a very fast and light website.
  • Tailwind CSS as CSS framework. This project doesn't need a full UI framework like Material UI or Ant Design.
  • CircleCI for continuous integration and continuous delivery.
  • reCAPTCHA Enterprise to avoid bots in the Contact form.