For most developers, creating a web app or testing a new SaaS is easy: just open it on localhost. But what happens when you want to go outside the confines of your local network, and say, want to show your friends what you've made? This is where the dreaded question comes in:
Where do I deploy my codebase?
In this post, I would like to show you the solution that we found that works for us, and some reasons why we usually go this route.
When you have an app that needs to use S3 for block storage, or Postgres as a database, you might think "Okay, I'll just quickly look at a provider and find a suitable one for cheap".
But what if you didn't need to add costs to your projects, and instead, could just focus on creating a prototype, without having to worry about cancelling plans or incoming bills?
Here comes the first piece of advice I would tell myself that saves me tens of hours every week: not everything needs to be over-complicated. You don't need a 600 euro database to handle a few requests that might never even come. Don't worry about scaling yet, just focus on making the app.
But you still need a database, and you still need block storage, and you still need to host your application somewhere. Is there a solution that doesn't break the bank, simplifies your workflow, and gives you flexibility when you need it?
Here at KO Interactive, we've been users of Coolify for more than 2 years now. It really is one of the best pieces of software that one could use for deploying custom solutions. We can set up projects to separate concerns, have individual containers connected to each other, and even manage docker-compose
deployments rather easily.
Since you're in control of all of the data you are managing, and you are using open-source and self-hosted solutions, you can always just decide to migrate over to a bigger database, or actually start using S3 or R2.
With Coolify, we can easily spin up a Postgres instance to have a database, or a new minio instance to have block storage for an app we're working on. And when we deliver the product, we can just create a production deployment very easily, change the environment variables that store the access keys, and provide that to a customer.
And since it can read Github repositories with ssh access keys, and we can use its API to setup Webhooks, we can very easily have our own CI/CD pipeline from just a git push, to a fully deployed solution.
Of course, there are other solutions out there, like CapRover and Portainer, that also provide similar features. But for us, Coolify has proven itself, and saved us countless hours and euros in the process.