Set up your personal playground first
For many years, like many developers, I had some ideas come and go. Not ideas about how to start a billion dollar company. Ideas about how to build something that sounded fun. Or useful. And in a few cases… Both!
When life slows you down, friction drags you to a stop
The scenario may sound familiar. Have an idea that sounds fun. Start working on it. Realise it’s not as simple as you thought. But you are pushing through. You are making some progress. And then… Then the progress starts being slower, as things stale… As the more fun parts are gone. Yes, if you pushed, maybe you can get it kind of working. But then, you will need to publish. Set up everything around it. Is there a good free service? Am I willing to spend money? Where does it go? Then, life catches up on you. And you never go back.
Fast? Good. Slow? Bad.
There is a saying about how slow is smooth, and smooth is fast. But that always depends on the context. In software, we have always known the importance of quick feedback. Whether we are talking about code review speed, or deployment ease, the picture has always been clear: If it’s fast, it helps you. Motivates you. Pushes you. If it’s slow, it drags you. It demotivates you. Context switching kills you. There is a reason it’s important to get a CI/CD going early in projects. Even if it’s not covering all the future cases, it’s ok, it will evolve. But it needs to be there from day one, to avoid wasting tons of time.
Set up your personal playground
Last year, finally I decided to “bite the bullet”. As a personal project, I set up my personal playground. In the past I have experimented with multiple ways to deploy apps and services. Managed ones like Heroku, using AWS and github actions, at work Gitlab CI/CD and Kubernetes. For your personal one, I would say what matters most is what you are looking for. If you want to learn something specific, go for it. If you want the smoothest experience, go for it (and tell me what you landed on). If you need it to be free, go for it.
What is important though, is that you actually go for it. Set it up, all the way. So that any project you want to deploy afterwards, the friction is small.
My setup
Having experimented with cloud platforms in the past, I wanted to see how it is with actually having a VPS and going from there.
I decided to go with self hosting Coolify, as the right combination of ease, customisability and experience I wanted. For those who don’t know it, this is how coolify introduces itself:
An open-source & self-hostable alternative to Vercel, Heroku, Netlify and Railway for easily deploying websites, databases, web applications and 280+ one-click services to your own server.
In practice, self hosted Coolify is a service you install on a server, and that lets you easily, through a nice web interface, manage and deploy services, whether they are databases, publicly available docker images, or your applications from github / wherever they are.
I just grabbed a VPS from Hetzner (10 Euros per month), a domain from cloudflare, and was ready to go.
How it has been
I have to say, that until now I am very happy with my choice. I don’t have complex use cases, but for those that I have, Coolify has been impressive. Ease of use, very easy to set up deployments especially with Docker (tried a bit with Nixpacks, but preferred the explicitness). Easy to set up multiple environments, and comes basically with automatically building and deploying on every push on github, optional builds for PRs, etc. Adding alerts to my phone was also easy and a nice feature.
The valuable experience of running services
A lot has been written about the advantages of publishing early, so I won’t go into this. However, I want to point out one positive I hadn’t thought of before. In today’s world, with AI and agentic coding picking up, it’s becoming more and more clear, how Software Engineering isn’t just about coding. It never was. It’s about the bigger picture.
All engineers know, that the difference between “developing a service” and “running a service” is huge. And publishing early, through a self-hosting tool like Coolify, means you come in contact much more with those aspects. Yes, you may not have thousands of users. But you still might get logs flooding your server and taking everything down, things depending on manual configuration between services, issues with SSL, mixed content blocking, health checks, behavior when your database crashes, etc. Of course, it’s not “free lessons”, the “maintenance” cost is real, problems will come up, it will cost you time. But it’s a darn cheap one. Cause all these lessons learned through experience are very valuable, and you will probably face them again in some shape or form in your professional life.
The mental freedom
The most critical part though, wasn’t the technical experience. It was the mental unblocking. Now, when I have an idea, something I want to work on, setting up the CI/CD is frictionless. Something I do immediately after I decide on the tech stack: Set up a “Hello World”, publish it with Coolify, and then start building.
Having my own domain, means I can just use any subdomain I want, and get my project published into something “good enough for now”, without having to go through the friction of finding another etc. Plus, I can change the subdomain in the rare (weekly?) case that the project name changes.
But most importantly, knowing that I can have something immediately published, properly, with SSL etc, means I am much more likely to go with it. Be it a portfolio site, an MCP server, a github project that I saw and wanted to self host, or developing into a webapp the Java program I built to help a teacher friend split groups for their workshop, I know I can put it there, get it deployed, published. And this is something very freeing. Very motivating.
So, my suggestion is clear. Go out there. Set up your personal playground. Cause, when the playground is in your house, that swing looks so much more appealing.
