I Like GitLab
111 points
6 hours ago
| 22 comments
| whileforloop.com
| HN
acdha
2 hours ago
[-]
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?”

reply
theptip
6 minutes ago
[-]
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.

reply
ksec
2 hours ago
[-]
>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.

reply
WD-42
18 minutes ago
[-]
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.
reply
WA
46 minutes ago
[-]
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.
reply
dewey
2 hours ago
[-]
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.
reply
sschueller
2 hours ago
[-]
I just wish they had sub/project folders like in gitlab. I would switch in a heartbeat.
reply
publicdebates
3 hours ago
[-]
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.
reply
dxdm
2 hours ago
[-]
It's also one of the few instances where the dark theme is pleasantly readable.
reply
echelon
1 hour ago
[-]
Seconded, this is a phenomenal personal website.
reply
miduil
58 minutes ago
[-]
> 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).

Update: Sources

https://docs.gitlab.com/user/storage_usage_quotas/ https://gitlab.com/gitlab-org/container-registry/-/issues/10...

reply
eddythompson80
49 minutes ago
[-]
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.
reply
miduil
45 minutes ago
[-]
Yeah, I mean thinking about it - you could also just use HN to host that image. I believe gdrive et al would just do the job.
reply
bramhaag
3 hours ago
[-]
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.

reply
SOLAR_FIELDS
2 hours ago
[-]
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
reply
javier2
1 hour ago
[-]
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?
reply
bramhaag
1 hour ago
[-]
Forgejo has an integrated CI/CD solution, Forgejo Actions [1], that is very similar to GitHub Actions (and thus not so similar to GitLab CI). This is what you'll probably use if you self-host.

Codeberg (a public Forgejo-based forge) also offers Woodpecker CI. Their hosted Forgejo Actions is still in beta AFAIK, but you can also use your self-hosted runners.

[1] https://forgejo.org/docs/next/user/actions/quick-start/

reply
xrd
1 hour ago
[-]
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.

reply
locknitpicker
2 hours ago
[-]
Here's a link to a previous HN discussion on forgejo

https://news.ycombinator.com/item?id=42753523

reply
cmrdporcupine
1 hour ago
[-]
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.

reply
NorwegianDude
2 hours ago
[-]
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.

reply
javier2
2 hours ago
[-]
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.
reply
spockz
2 hours ago
[-]
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.)

reply
traspler
2 hours ago
[-]
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.
reply
codethief
2 hours ago
[-]
> 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

reply
flipped
2 hours ago
[-]
Forgejo does all that while being lightweight and run by a non-profit. Gitlab is awfully resource hungry.
reply
wiether
2 hours ago
[-]
> Gitlab is awfully resource hungry.

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!

reply
flipped
2 hours ago
[-]
Forgejo scales too, even for a large org it's a perfect choice.
reply
vibe_assassin
2 hours ago
[-]
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
reply
codethief
2 hours ago
[-]
> 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.

[0]: https://news.ycombinator.com/item?id=46296816

reply
cortesoft
16 minutes ago
[-]
Weird, I helped manage a transition of a few hundred repos from GitHub enterprise to Gitlab enterprise, which included helping a few dozen teams migrate their CI to gitlab ci.

I had such a better experience with gitlab CI than any other I have used. There are quirks, but they make sense after you learn them.

reply
SOLAR_FIELDS
2 hours ago
[-]
In general you shouldn’t be letting your ci system’s job orchestration be handled in YAML. It’s just too complex of a concept to try and capture in some half baked YAML DSL
reply
codethief
1 hour ago
[-]
Agreed. As the saying goes,

> every sufficiently complex CI system becomes indistinguishable from a build system.

But what alternatives are there that also integrate well with version control systems like GitLab/GitHub/Gitea/…?

For instance, Dagger works quite well but its UI is going to be completely separate from whatever CI system you're using.

reply
sippeangelo
1 hour ago
[-]
I can't imagine a world where I had to work with the Gitlab CI pipeline on the daily. I'm sure it's not perfect, but what are you even doing if you have to touch it DAILY?!
reply
codethief
1 hour ago
[-]
I didn't mean to say I changed the pipelines on the daily, though admittedly I did have to touch them rather frequently since we were migrating stuff away from Jenkins.
reply
lkramer
3 hours ago
[-]
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.
reply
ofrzeta
3 hours ago
[-]
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.
reply
firesteelrain
3 hours ago
[-]
We are running GitLab Ultimate in three different environments. Like 2000 users each and each user pipeline runs crazy like hundreds amounts of jobs. GitLab is keeping up. But we are sized for the 40 RPS architecture
reply
moepstar
2 hours ago
[-]
> But we are sized for the 40 RPS architecture

Just in case anyone else (like me) didn't get the reference:

> This page describes the GitLab reference architecture designed to target a peak load of 40 requests per second (RPS), the typical peak load of up to 2,000 users, both manual and automated, based on real data.

https://docs.gitlab.com/administration/reference_architectur...

reply
jeduardo
1 hour ago
[-]
We used to run Gitlab Premium for around 300 users running hundreds of jobs over some monorepos. Gitlab suggested a small architecture using Omnibus, and while it helped a bit, it didn't perform as well under load as we expected it to.

Eventually, there was no virtual scaling that could help. This, for me, is the biggest problem with Gitlab hosting: as soon as you hit a scale where a single machine with Omnibus doesn't cut it, the jump in complexity, cost, and engineering hours is significant.

reply
firesteelrain
1 hour ago
[-]
Omnibus is like entry level. We paid for GitLab Professional Services and they recommended going to the larger architecture. Since then, we haven’t had issues.

They have their free fast stats tool and you can run your logs through their tool to get statistics and identify hotspots

reply
wiether
2 hours ago
[-]
My experience also.

I would never use Gitlab for my own needs, but at company level, it's impressive how well it behaves!

reply
prymitive
1 hour ago
[-]
My biggest annoyance with girls is that the UI is one huge block of text on white background with absolutely no distinction between user content (like commit messages) and the interface itself, plus you have action buttons buried in the middle of the page. And everything loads asynchronous causing blocks to dance around when the one above loads …
reply
KronisLV
3 hours ago
[-]
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.

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!

reply
egeozcan
3 hours ago
[-]
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.

reply
INTPenis
1 hour ago
[-]
I also like it. Been using it since around 2013.

But they have a massive backlog and they seem to be focusing their development resources on customer requests, obviously. So it could definitely use improvement.

reply
coopreme
2 hours ago
[-]
I also like it. At one point I had my team move all of our team management to it as well. It was a little bit painful as first, but once you understand the issue, epic, milestone hierarchy it was it was great. The board feature that does kanban was cool. Switching from dedicated ec2 runners to pods in our cluster was less awesome…
reply
bratao
3 hours ago
[-]
One interesting point of GitLab for me is the self-hosted version, including the AI features (Duo) that can also be self-hosted and you can bring your own OpenAI/Anthropic key.
reply
Kelteseth
2 hours ago
[-]
But only with a premium subscription, right?
reply
hatmatrix
2 hours ago
[-]
Yeah I started using GitLab for the same reason and also that FSF "approved" of its CE version. But doesn't hosting private repos on GitLab and using public repos on GitHub just give GitHub that much more monetizable value?
reply
Macha
1 hour ago
[-]
It does, and I've even had Gitlab as the primary repo for some time. But if your projects pick up any steam, github mirrors are going to pop up whether you run them or not - I've had people mirror my projects onto github because it means less questions for them when they want to package them for their organisation or minor packaging system than pulling source from "not-Github". Of course, the license allows them to do that, and they're upfront why they're doing it, but if there's going to be a github mirror anyway, may as well have it official.

Also if we're being honest, despite Gitlab being the #2 platform, you're going to get less contributions than on Github as people just aren't going to want to sign into a second service. Now most of my public projects are like "I made this, I put it here to show off, and use it if you like" so if people _don't_ use it, it's no big deal for me, but if you're in it for revenue or clout or just like seeing usage numbers going up, it's clearly not the optimal choice.

reply
SOLAR_FIELDS
2 hours ago
[-]
It is quite annoying of the lock in. I prefer using GitLab for private projects but it means if I want to FOSS those I now need to support two different platforms to have FOSS projects and my own stuff
reply
wycy
2 hours ago
[-]
We use self-hosted GitLab at work. It’s really a pleasure to use, everything works the way it feels like it should. The main downside is the system resource requirements are absurd considering at any given time there’s only 1-2 people using the GitLab interface.
reply
paskejl
59 minutes ago
[-]
I'll add one more annoying part: testing the CI/CD script on gitlab. It doesn't exist, and it's hell.

Edit: perhaps it's skill issue too, but I'm annoyed they don't have a similar feature to jump to definitions as github does.

reply
IshKebab
3 hours ago
[-]
It's okay. But I would definitely pick Forgejo over it for self-hosting these days. It's written in Go which is a lot better. Much faster, easier to set up, you can actually follow the code (sometimes I've had to read Gitlab's code to understand features and nearly always failed). Also no features are paid. The ones that made us eventually pay for Gitlab were mandatory reviews and merge trains. Tbh I don't think Forgejo has either of those features yet but at least when they are available they'll be free!
reply
shamiln
3 hours ago
[-]
Why not Gitea over Forgejo, which is what Forjego seems to be forked from?

That said, looking at recent releases, there are nice things from both, and if I wasn’t running GHES, I’d be stuck to choose between the two

reply
Macha
1 hour ago
[-]
This is gitea's homepage:

https://about.gitea.com/

This is forgejo's homepage:

https://forgejo.org/

---

The homepages should tell you which is more focused on the self-hosted open source use case.

reply
wiether
2 hours ago
[-]
Philosophical convictions, I guess?

One is supported by a for-profit org, while the other by a non-profit org.

reply
gear54rus
3 hours ago
[-]
Absolutely the same here. Same journey and same points. One added benefit is that you don't have to suffer through GH actions on GitLab as well.

They sometimes do braindead moves like prohibiting no-expiry-date access tokens but otherwise it's pretty smooth sailing.

And with recent migration to an SPA GitLab feels quicker and quicker.

reply