I used to think GitHub Actions, GitLab CI, Jenkins, CircleCI and TeamCity were basically the same thing with different YAML syntax. They're not. The bigger distinction is: Code hosting ≠ CI/CD ≠ workflow orchestration. GitHub → GitHub Actions GitLab → GitLab CI/CD Bitbucket → Bitbucket Pipelines Azure DevOps → Azure Pipelines Gitea → Gitea Actions Forgejo → Forgejo Actions And then you have independent CI/CD/workflow platforms: Jenkins CircleCI TeamCity Argo Workflows I put together a practical guide explaining: → what a code hosting platform actually does → what CI/CD adds → why companies sometimes use an external CI/CD platform → how Jenkins, CircleCI and TeamCity differ → why Argo is a different category → the pipeline/configuration file for each platform → which tools are worth learning as a developer The goal isn't to memorize 10 YAML syntaxes. It's to understand the architecture behind them. Learn the concepts first. Choose the platform second. Full article: https://taher-el-mehdi.hashnode.dev/code-hosting-vs-ci-cd-github-actions-gitlab-ci-jenkins-circleci-argo-workflows-and-more-what-actually-fits-your-stack