Gatto's Lab
As you might have figured out by now, it's this website! I always wanted to have my own slice of the internet all for myself and so i decided to develop a simple website with my GitHub projects as the subject.
Backend
I used Java 25 with Spring Boot as it's a language and framework combo that i'm comfortable with and know very well. The system serves the whole site directly from memory, thus completely eliminating disk usage (totally overkill of the sub 1 RPS i receive on average, but it was fun to implement). The backend also communicates with a simple MongoDB instance to store logs, usage and request metrics. This observability system is fully custom and took me a while to get right as i mostly played around with different techniques and implementations.
Frontend
I decided to use vanilla HTML, CSS and a bit JS in specific places (non public pages, where i can view the metrics and logs). The public site can be browsed without JS enabled at all, which is nice as the web of today overly relies on it for functionality that can be achieved with traditional methods without too much effort.
Infrastructure
On the infrastructure side i went with Hetzner as the server provider, since their offers were quite affordable for a single individual like myself: a bit over 4€ per month for a VPS with 2 vCPUs, 4GB of RAM, 40GB of storage and 20TB of outgoing network traffic. The site is currently proxied via Cloudflare (which also works as the DNS servers), as it can cache the content on different geographical regions (not that i need it in reality, but i though it would be cool to have), as well as provide protections and usage statistics.
Lastly, to deploy the site, i made use of Jenkins on the VPS (not the best practice, but the project is quite small) for fully automated build and deploy pipeline that is triggered on commits to the main git branch.
You can view the source code at this Git repo.