Blog

Building a Live Dart Scoreboard with Symfony, Mercure, and Turbo Streams

After a night out at the pub with friends, we ended up playing a game of darts called Killer. It's a great game, chaotic, social, and surprisingly strategic. But keeping score on a piece of paper or on someone's phone notes app is a mess. Someone always loses track, someone else disputes a point, and half the group…

Continue reading — Building a Live Dart Scoreboard with Symfony, Mercure, and Turbo Streams

From Bare Metal to Multi-VPS Deployments with Dokploy

For a long time, I ran everything on a single bare metal server at OVH. It hosted my self hosted GitLab, GitLab runners, Docker images, and all my production workloads. It was powerful, reliable, and predictable, but, over time, it became expensive and rigid. I wanted something more flexible, easier to scale, and…

Continue reading — From Bare Metal to Multi-VPS Deployments with Dokploy

Building the "Is First Commit" GitHub Action

In this post I go through a small GitHub Action I wrote, Is First Commit. It checks whether the current commit is the very first one of a repository. The project An action starts with a package.json, the same as any Node project. It holds the metadata, the dependencies and the scripts. For Is First Commit it looks…

Continue reading — Building the "Is First Commit" GitHub Action

Connecting GitHub Actions to DockerHub to share and publish images

When creating a Docker Image you might want to make it easily accessible to you and the world. Most of us have been used to GitHub to share code and, nowadays, DockerHub to make our Docker images publicly available. We used to be able to connect our GitHub and DockerHub accounts and have DockerHub listen to changed in…

Continue reading — Connecting GitHub Actions to DockerHub to share and publish images