I’ve liked using GitLab but it’s definitely felt like their IPO lead to more chasing flash and less attention to quality. They yanked the support rep which customers used to get–everything goes through sales now–and started putting most features behind the hefty Ultimate price tier, and there are so many cute features which need more polish but since they’re not “AI” it seems like they’re ignored even though they have open issues with years of customers saying they have the same problem.
This has lead to a game: each time the sale pitch claiming big wins for their AI tools arrives, ask “when will we start seeing GitLab development back to pre-IPO speed?”
Nah, they were always chasing flash. I enjoyed using their products circa 2015-2020, but man they really leaned into the Pareto Principle. Every feature had rough edges, and they didn’t invest much in polish.
It’s a tough trade-off for a small team competing with a behemoth, and I guess their success indicates that they played their hand correctly. If you are going for the enterprise segment then checking off the feature requirements can be more important than making each feature perfect.
>Speed. The GitLab web interface has always felt sluggish to me.
10 years later the same problem remains. While Gitea / Forgejo have very little performance problems. And will only get better once Go 1.26 is out. Which is a much bigger release than a single digit version number upgrade.
I used GitLab only as a remote repo for private projects, no CI at all. The laggy interface and that damn browser check every so often made me close my account.
It must be a fundamental architectural problem with Gitlab. When I had to use it for work the speed killed me. Especially searching for issues. I will never consider gitlab for anything until they find a way to boost performance.
Very weird, my experience is the opposite. When changing jobs in 2018 I moved from Bitbucket and Confluence (own data center, but to my understanding powerful and well-maintained) to Gitlab cloud. Atlassian was laggy, overengineered and not pleasant to use. Gitlab was slim and fast. They have added a lot of stuff since then and maybe smreponsiveness has suffered a bit, but I can't really complain. Gitlab works well most of the time. Recently I have had to use Jira cloud. Much worse than Gitlab. Could be that our templates are overloaded and some extensions are particularly bad (looking at you XRay). But pretty sluggish and annoying user experience. With Gitlab over-excited managers cannot ruin performance by having more and more details added to the templates.
Just like a truck will always be more sluggish than a small car. They are very different beasts where one is aimed at enterprises and the other one for small projects without all the corporate needs.
I've been using GitLab since the early days, but a week ago I switched to Forgejo. Power usage on the server dropped by 10%, despite both being idle most of the time.
As the author says, GitLab feels sluggish, and is bloated with 1001 thing I'd never use that just makes the UI a pain. Despite all the features I don't need, some that I would benefit from are disabled in the free version.
Forgejo is simpler. It allows me to hide features per project that I don't need. Bit there are some tradeoffs. Updates on GitLab was great. I've been letting it self update for years with no issues. This does not work on Forgejo. Forgejo is also a lot less polished, and some features just doesn't seem to work like they should.
Tangent, but fantastic website. Honestly it was a pleasure just to read it and click around on it. I'm not sure if the design and idea was your own or part of some Jekyll theme, but the execution is just fantastic. Couldn't find the source in your GitHub repos, but maybe I just didn't look hard enough.
I switched from GitLab to Forgejo for my private projects after not wanting to deal with how slow GitLab's interface is anymore.
I still have proper CI, issue tracking, and all other features I care about, but the interface loads instantly and my screen isn't filled with many features I'll never use for my private projects.
Forgejo's code review tool slavishly follows GitHub (like a lot of other things it does) and so has the same inferior developer workflow that comes with that.
GitLab is no Gerrit, but it does at least support stacked MRs, and at least seeing comments between forced pushes / rebases, if not tracking them.
I use Codeberg, and therefore Forgejo for my open source project, but frankly the GH style workflow is not appropriate for serious software development. It forces one to either squash all commits or use <gag> merge commits. Many people have developed stockholm syndrome around this and can't imagine any other way. But it sucks.
The GH model encourages big-bang giant PR all at once development, and it's corrosive on productivity and review culture inside teams. And it leads to dirty commits in the git history ("fix for review comments." "merge." "fix for review comments." etc)
I worked with GitLab for a year and a half on a job, and I prefer its review tool for functionality, though not necessarily UX.
I came here to say this. I switched to forgejo after self hosting gitlab for years, and haven't missed anything.
The article mentions the container registry as a prime feature of gitab. Forgejo has this, btw.
In addition, speed (of everything) is so good with forgejo. The resource requirements (napkin math, but...) are 10% of gitlab.
I see no reason to ever use GitLab again.
There are two minor annoyances for me, but not deal breakers.
.
First, I actually prefer the GitLab CI syntax. "GitHub Actions" is a mess. I suppose it makes sense to use the dominant gorilla (github actions), but converting to this CI was more trouble than it should have been.
Also, the forgejo API: it is much less developed. I did like exploring with GraphQL which is totally missing in forgejo. But, you have access to the database directly (and can use sqlite or postgres, your choice) so you can really do whatever you want with a custom script. Forgejo API and their infrastructure around it is just a bit more clunky, but nothing that was a major problem.
One of the reasons I like how lightweight GitTea/Forgejo is allows me to develop with argocd locally. Spin up a kube cluster with tilt, bootstrap forgejo, bootstrap Argo and point it at forgejo, now I can test Appset devs with sync waves locally
Just tried it out for a bit, and it looks great and is super snappy. It seems the CI portion is delivered by a project Woodpecker? How does this work and is compared to gitlab CI?
Is there any point to switch to Forgejo for my open source projects? Wouldnt I just be leeching resources from the guys at Codeberg/ whereever instead of Microsoft?
I didn't know people disliked GitLab. I use it for work and while some things could definitely be improved, overall I find it to be a pretty intuitive and easy experience. They could definitely improve user management at the admin vs group level (you cant see LDAP sync settings in admin panel, you have to navigate to the group) but overall I don't get frustrated using it. It's CICD syntax is a breeze for the most part too
> It's CICD syntax is a breeze for the most part too
Hard disagree. Gitlab CI, while more powerful than some alternatives, is so so bad, its YAML-based syntax included. As I said in another thread[0]:
> I worked with Gitlab CI on the daily from 2021 till 2024 and I started curating a diary of bugs and surprising behavior I encountered in Gitlab.
No matter what I did, every time I touched our CI pipeline code I could be sure to run into yet another Gitlab bug.
> Feature overload. GitLab tries to be everything.
This is the primary reason I dislike GitLab. It is so complicated to use.
Github issue trackers are so simple to use.
Perhaps GitLab offers more features for project owners, but as a user, I much prefer github. Of course I'd prefer it even more if Microsoft wouldn't control github ...
Same. We used to host a GitLab instance in our enterprise. As a sysadmin that used that only occasionally, let me tell you, it took me a hundred times the time to figure out how to do something than actually doing it.
Even just finding the source code or issue tracker was like hidden behind layers of layers in the navigation.
No we're hosting GitHub. Shits never been easier. GitHub also has its ugly sides, but the ugly sides still are better than anything in GitLab.
While it‘s pretty great to have such a unified interface, there are many papercuts.
To me it has become a bit of a meme that you always end up in this old-issue flow: I want to do X -> Try it -> Run into an issue -> Search for solution -> Find an official bugreport that is 3-8y old. Also many features seem to be stuck in either the 80/20 hell or it the „we needed a bulletpoint on a feature list and built a barely working MVP“-situation. The slow interface, as mentioned in other comments, is so incredibly painful on MR-views that it drives me crazy some days.
> To me it has become a bit of a meme that you always end up in this old-issue flow: I want to do X -> Try it -> Run into an issue -> Search for solution -> Find an official bugreport that is 3-8y old.
That's been my experience as well and, in fact, it was totally a meme at my former client! See also my comment in another recent thread: https://news.ycombinator.com/item?id=46296816
> The 10GB limit per project sounds small on paper but I’ve never come close to hitting it
The docker images don't have limits, there is a limit per layer. IIRC I've distributed a 100GB image through their free tier (just had to make sure to keep the layer size small enough).
Has someone made a p2d yet where they split a 4K movie into a bunch of docker layers to push and pull through an OCI registry? I have a 70GB REMUX copy of Interstellar that I'd love to docker push to gitlab.
We switched to gitlab at work about five years ago and this perfectly summarizes my experience. Add to that Gitlab projects also have a included Maven, NPM and python compatible package registry, so you can just push your package back in the CI pipeline is one of my favourite features as a smaller team. My least favorite feature is actually the sheer number of features. There is actually too many features. And the constant waiting. Basically every screen is just twice as slow as I would like to wait.
After using Stash for ages at work we switched to gitlab which was refreshing. It was fast, self hosted, and full of features, especially useful around quality gates and build on PRs. Then it was decided we should go for best of suite instead of breed and we went to azure devops.
It is slow as molasses, issues are more project management oriented instead of coding, quality gates are virtually non existent and builds are now slow. Builds are slow because instead of our beefy build servers they run on VMs, that are undersized and have IOPS restrictions, because downloading the cache for maven/docker/npm is relatively fast but actually expanding it on disk is slow, because just the simple orchestration to spawn a job is also slow.
I would love to go back to gitlab and I would even dedicate some time to performance tune it and contribute back. I think gitlab does everything right. (Technically, not sure about pricing and tiering.)
If you log into your GitLab account from a Hong Kong IP address, they'll delete your account after 60 days and tell you to use JiHu, a Chinese company, instead.
For a long time I self hosted Gitlab, and was always quite happy with it, but I recently moved my VPS and decided to give Forgejo a try, and I have to say it's refreshing. It's really fast and takes a fraction of the resources Gitlab does. I'm sure Gitlab have more features, but frankly, I wasn't using them. I still like Gitlab, we use it at work and it does a good job, but for my own needs I don't see myself switching back any time soon.
It's frustrating that the so-called enterprise solutions are monsters. In a former workplace we were using Gogs for a long time. It's so nice to work with software that doesn't require a ton of resources for a relatively simple task.
It was once a cool alternative to gitlab. Self hostable, open source, etc... Now it's bloated hell. Everything from source control, to project management. I don't have good experiences with it in recent years
I'm not sure if this is the right place to ask, but does anyone else still work in an environment where they have to do synchronous version control? It's a nightmare and I have yet to find a decent solution.
To give an idea, this is a proprietary system that is extendable via scripts, but all of the artifacts are exported via XML files where script source is escaped into one XML tag within the metadata. Same with presentation layers, the actual view XML is escaped into one line within one attribute of the metadata file. The "view" xml may be thousands of lines but it is escaped into a single like of the export file so any change at all just shows that line as being changed in a diff. Attempts at extracting that data and unescaping it even seem to present problems because when the XML is exported often times the attributes within the schema are exported in a different order, etc.
For a company that (optionally) wants to self-host stuff, I'd say GitLab is pretty great - it's there for you, be it in the cloud or on-prem and mostly works, if you have enough resources to throw at the instance.
At the same time it won't always have full on feature parity with some of the other options out there, or won't be as in depth as specialized software (e.g. Jira / Confluence) BUT everything being integrated can also be delightfully simple and usable.
I will say that I immensely enjoy working with GitLab CI at work (https://docs.gitlab.com/ci/), even the colleagues on projects using Jekins migrated over to it and seems like everyone prefers it as well, the last poll showing 0 teams wanting to use Jenkins over it (well I might later for personal stuff, but that's more tool-hopping, like I also browser and distro hop; to see how things have changed).
However, it was a bit annoying for me to keep up with the updates and the resource usage on a VPS so that's why my current setup is Gitea + Drone CI (might move over to Woodpecker CI) + Nexus instead of GitLab, and is way more lightweight and still has the features I need. Some people also might enjoy Forgejo or whatever, either way it's nice to have options!
Social issues make gitlab better although there are also social downsides.
The people who submit fake/AI issues and PRs for resume purposes seem to exclusively use github and this is a substantial expense for the real users (see the recent Curl discussion). Gitlab doesn't have those people (or at least its a wildly smaller problem).
One social downside is noobs will insist a project does not exist if its not on github, even if you send them the gitlab URL. Almost have to physically cut and paste the gitlab URL into their browser for them before they will believe. You can either do nothing which filters them, not a bad idea, or create a clone or placeholder on GH that basically links back to the real repo on GL. I don't know if that is allowed in the ToS for GH but people certainly do it a lot.
I like using it at work. I probably would use something lighter if I ever move off github though, as I've seen the IT throw more and more resources at it for simple usage with just 30-40 MRs per day.
Also the free version doesn't have PR requirements or multiple reviewers etc.
[+] [-] acdha|1 month ago|reply
This has lead to a game: each time the sale pitch claiming big wins for their AI tools arrives, ask “when will we start seeing GitLab development back to pre-IPO speed?”
[+] [-] theptip|1 month ago|reply
It’s a tough trade-off for a small team competing with a behemoth, and I guess their success indicates that they played their hand correctly. If you are going for the enterprise segment then checking off the feature requirements can be more important than making each feature perfect.
[+] [-] ksec|1 month ago|reply
10 years later the same problem remains. While Gitea / Forgejo have very little performance problems. And will only get better once Go 1.26 is out. Which is a much bigger release than a single digit version number upgrade.
[+] [-] WA|1 month ago|reply
[+] [-] WD-42|1 month ago|reply
[+] [-] usr1106|1 month ago|reply
[+] [-] quaintdev|1 month ago|reply
Can anyone tell me why? What's changing with Go 1.26?
[+] [-] dewey|1 month ago|reply
[+] [-] unknown|1 month ago|reply
[deleted]
[+] [-] estimator7292|1 month ago|reply
[+] [-] sschueller|1 month ago|reply
[+] [-] NorwegianDude|1 month ago|reply
As the author says, GitLab feels sluggish, and is bloated with 1001 thing I'd never use that just makes the UI a pain. Despite all the features I don't need, some that I would benefit from are disabled in the free version.
Forgejo is simpler. It allows me to hide features per project that I don't need. Bit there are some tradeoffs. Updates on GitLab was great. I've been letting it self update for years with no issues. This does not work on Forgejo. Forgejo is also a lot less polished, and some features just doesn't seem to work like they should.
[+] [-] publicdebates|1 month ago|reply
[+] [-] dxdm|1 month ago|reply
[+] [-] echelon|1 month ago|reply
[+] [-] albert_e|1 month ago|reply
who thought showing markdown as markdown could be cool :)
[+] [-] bramhaag|1 month ago|reply
I still have proper CI, issue tracking, and all other features I care about, but the interface loads instantly and my screen isn't filled with many features I'll never use for my private projects.
[+] [-] cmrdporcupine|1 month ago|reply
GitLab is no Gerrit, but it does at least support stacked MRs, and at least seeing comments between forced pushes / rebases, if not tracking them.
I use Codeberg, and therefore Forgejo for my open source project, but frankly the GH style workflow is not appropriate for serious software development. It forces one to either squash all commits or use <gag> merge commits. Many people have developed stockholm syndrome around this and can't imagine any other way. But it sucks.
The GH model encourages big-bang giant PR all at once development, and it's corrosive on productivity and review culture inside teams. And it leads to dirty commits in the git history ("fix for review comments." "merge." "fix for review comments." etc)
I worked with GitLab for a year and a half on a job, and I prefer its review tool for functionality, though not necessarily UX.
[+] [-] xrd|1 month ago|reply
The article mentions the container registry as a prime feature of gitab. Forgejo has this, btw.
In addition, speed (of everything) is so good with forgejo. The resource requirements (napkin math, but...) are 10% of gitlab.
I see no reason to ever use GitLab again.
There are two minor annoyances for me, but not deal breakers. . First, I actually prefer the GitLab CI syntax. "GitHub Actions" is a mess. I suppose it makes sense to use the dominant gorilla (github actions), but converting to this CI was more trouble than it should have been.
Also, the forgejo API: it is much less developed. I did like exploring with GraphQL which is totally missing in forgejo. But, you have access to the database directly (and can use sqlite or postgres, your choice) so you can really do whatever you want with a custom script. Forgejo API and their infrastructure around it is just a bit more clunky, but nothing that was a major problem.
[+] [-] locknitpicker|1 month ago|reply
https://news.ycombinator.com/item?id=42753523
[+] [-] SOLAR_FIELDS|1 month ago|reply
[+] [-] javier2|1 month ago|reply
[+] [-] javier2|1 month ago|reply
[+] [-] vibe_assassin|1 month ago|reply
[+] [-] codethief|1 month ago|reply
Hard disagree. Gitlab CI, while more powerful than some alternatives, is so so bad, its YAML-based syntax included. As I said in another thread[0]:
> I worked with Gitlab CI on the daily from 2021 till 2024 and I started curating a diary of bugs and surprising behavior I encountered in Gitlab. No matter what I did, every time I touched our CI pipeline code I could be sure to run into yet another Gitlab bug.
[0]: https://news.ycombinator.com/item?id=46296816
[+] [-] shevy-java|1 month ago|reply
Github is so much easier to use. I don't understand why gitlab wants to make everything so complicated.
[+] [-] shevy-java|1 month ago|reply
This is the primary reason I dislike GitLab. It is so complicated to use.
Github issue trackers are so simple to use.
Perhaps GitLab offers more features for project owners, but as a user, I much prefer github. Of course I'd prefer it even more if Microsoft wouldn't control github ...
[+] [-] mountainriver|1 month ago|reply
This is due to the fact that they don’t well.
[+] [-] 7bit|1 month ago|reply
Even just finding the source code or issue tracker was like hidden behind layers of layers in the navigation.
No we're hosting GitHub. Shits never been easier. GitHub also has its ugly sides, but the ugly sides still are better than anything in GitLab.
I hate GitLab with a passion.
[+] [-] traspler|1 month ago|reply
[+] [-] codethief|1 month ago|reply
That's been my experience as well and, in fact, it was totally a meme at my former client! See also my comment in another recent thread: https://news.ycombinator.com/item?id=46296816
[+] [-] miduil|1 month ago|reply
The docker images don't have limits, there is a limit per layer. IIRC I've distributed a 100GB image through their free tier (just had to make sure to keep the layer size small enough).
Update: Sources
https://docs.gitlab.com/user/storage_usage_quotas/ https://gitlab.com/gitlab-org/container-registry/-/issues/10...
[+] [-] eddythompson80|1 month ago|reply
[+] [-] osigurdson|1 month ago|reply
[+] [-] javier2|1 month ago|reply
[+] [-] spockz|1 month ago|reply
It is slow as molasses, issues are more project management oriented instead of coding, quality gates are virtually non existent and builds are now slow. Builds are slow because instead of our beefy build servers they run on VMs, that are undersized and have IOPS restrictions, because downloading the cache for maven/docker/npm is relatively fast but actually expanding it on disk is slow, because just the simple orchestration to spawn a job is also slow.
I would love to go back to gitlab and I would even dedicate some time to performance tune it and contribute back. I think gitlab does everything right. (Technically, not sure about pricing and tiering.)
[+] [-] flipped|1 month ago|reply
[+] [-] wiether|1 month ago|reply
Yes... and no.
Gitlab doesn't make sense for a low-volume setup (single private user or small org) because it's a big boat in itself.
But when you reach a certain org size (hundreds of users, thousands of repos), it's impressive how well it behaves with so little requirements!
[+] [-] jyrkesh|1 month ago|reply
Give it 1-2 years, feature quantity will take precedence over feature quality
[+] [-] computerfriend|1 month ago|reply
[+] [-] l7l|1 month ago|reply
[+] [-] lkramer|1 month ago|reply
[+] [-] ofrzeta|1 month ago|reply
[+] [-] Squarex|1 month ago|reply
[+] [-] sqircles|1 month ago|reply
To give an idea, this is a proprietary system that is extendable via scripts, but all of the artifacts are exported via XML files where script source is escaped into one XML tag within the metadata. Same with presentation layers, the actual view XML is escaped into one line within one attribute of the metadata file. The "view" xml may be thousands of lines but it is escaped into a single like of the export file so any change at all just shows that line as being changed in a diff. Attempts at extracting that data and unescaping it even seem to present problems because when the XML is exported often times the attributes within the schema are exported in a different order, etc.
[+] [-] KronisLV|1 month ago|reply
It's not as demanding as a some of the other software out there, like a self-hosted Sentry install, just look at all of the services: https://github.com/getsentry/self-hosted/blob/master/docker-... in comparison to their self-contained single image install: https://docs.gitlab.com/install/docker/installation/#install...
At the same time it won't always have full on feature parity with some of the other options out there, or won't be as in depth as specialized software (e.g. Jira / Confluence) BUT everything being integrated can also be delightfully simple and usable.
I will say that I immensely enjoy working with GitLab CI at work (https://docs.gitlab.com/ci/), even the colleagues on projects using Jekins migrated over to it and seems like everyone prefers it as well, the last poll showing 0 teams wanting to use Jenkins over it (well I might later for personal stuff, but that's more tool-hopping, like I also browser and distro hop; to see how things have changed).
However, it was a bit annoying for me to keep up with the updates and the resource usage on a VPS so that's why my current setup is Gitea + Drone CI (might move over to Woodpecker CI) + Nexus instead of GitLab, and is way more lightweight and still has the features I need. Some people also might enjoy Forgejo or whatever, either way it's nice to have options!
[+] [-] VLM|1 month ago|reply
The people who submit fake/AI issues and PRs for resume purposes seem to exclusively use github and this is a substantial expense for the real users (see the recent Curl discussion). Gitlab doesn't have those people (or at least its a wildly smaller problem).
One social downside is noobs will insist a project does not exist if its not on github, even if you send them the gitlab URL. Almost have to physically cut and paste the gitlab URL into their browser for them before they will believe. You can either do nothing which filters them, not a bad idea, or create a clone or placeholder on GH that basically links back to the real repo on GL. I don't know if that is allowed in the ToS for GH but people certainly do it a lot.
[+] [-] egeozcan|1 month ago|reply
Also the free version doesn't have PR requirements or multiple reviewers etc.