Hey, guys! Today I will show you how my workflow looks like. This is the latest version, I changed it a few times before. If you read my blog, you know that before I hosted a lot of things at my home on my server. Gradually I moved things to the cloud and now I'm trying to simplify my workflow. It's nice to manage your stuff yourself, but it takes a lot of time. Let's take a look at how I managed to do it.
I have divided it into the following categories, Programming, Storage and Deployment.
Programming
Most of my code is written in PHP, JavaScript and HTML. For programming I use VS Code editor, and for more complex things, PHPStorm from JetBrains.
I also use C# from time to time, mostly with my employer. I create this code on Visual Studio or Rider (again an application from Jetbrains) and if the applications are simpler, VS Code.
From other programming languages I use I would mention Java or GO. For these I use again applications from Jetbrains (Idea or Goland depending on the language). (I don't use these that often though).
As far as databases are concerned, my favourite application is DataGrip, but lately I have been trying TablePlus which has a quite minimalistic design and also a mobile application.
As far as the operating system is concerned, I have recently been using Linux (multiple distributions), which I really like, but since we use Windows at work and some of the applications that I create are designed for Windows in the Desktop version, so I went back to Windows.
Instead of dual-boot I use WSL v2 where I have several Linux distributions installed (like Ubuntu, Debian or Kali)
Recently I've been using Codespaces from GitHub more and more, thanks to which I can edit source code from anywhere where I have access to the Internet, for example on a tablet or mobile phone if I need to quickly edit a line.
Storage
I put all the source code I create automatically into GIT, specifically I use GitHub. Besides the GIT repository, it offers you a lot of other options like Codespaces, Docker storage and much more.
I also have the source codes stored on my own server where I host Gitea.
Code testing is also done automatically on GitHub after each push.
Apart from these, I have tried other options such as self-hosted Gitlab, which has its own CI/CD, or Gitea + Drone. I've been using GitLab for the longest time (about 5 years) but as I say I'm trying to simplify things so I can focus on work instead of managing my own server and finding solutions why things don't work.
If we talk about documentation or notes, I write them in Markdown and store them on my GitHub, or I use OneNote / Word which autosyncs with the cloud (Microsoft 365), and from there to any of my devices.
Deployment
Depending on the application, I publish them using Netlify / Vercel or Forge.
If they are static pages, which I create using Hugo, I publish them on the Web using Netlify or Vercel. This is done automatically after each push to the main branch.
I publish my PHP applications using Laravel Forge on my server which I have with Hetzner.
As the name of the service says it will work best with Laravel but it is not a problem to modify code from other frameworks to make it work the same way. I have several applications created this way in CakePHP. I have this set to manual after clicking the deploy button, but if you want you can turn on quick deploy and then it will publish the application after a push to the main branch (or another one, depending on how you set it up)
In conclusion
Only time will tell how I managed it. But now I have more time to devote to programming and less time to managing the server.
But I haven't given up everything self-hosted, I still have my own Gitea or Mastodon server.
What does your workflow look like? How much time does it take you to manage the server vs programming your applications?
If you are interested in what else I use, you can see my uses page.
Originally posted on My blog
Top comments (0)