diff options
| Commit | 4bcb0faa5fc52f3b165e5cad99494b64ce5d25bb (patch) | |
|---|---|---|
| Author | 2026-11-15 16:05:08 +0200 | |
| Committer | 2026-11-15 16:05:08 +0200 | |
| Files | a34c8a82f66c9596a182af454d6d00e9824980a8 /src/blog/gitlab-killed-itself/index.du | |
| syndamia.com-master.tar syndamia.com-master.tar.gz syndamia.com-master.zip | ||
| Parent | c29cb35f40b79f0b6dc822990eea4545154176ce (diff) | |
1 files changed, 234 insertions, 0 deletions
| -rw-r--r-- | src/blog/gitlab-killed-itself/index.du | 234 |
diff --git a/src/blog/gitlab-killed-itself/index.du b/src/blog/gitlab-killed-itself/index.du new file mode 100644 index 0000000..ed23782 --- /dev/null +++ b/src/blog/gitlab-killed-itself/index.du @@ -0,0 +1,234 @@ +'def title GitLab killed itself +'def desc Why I switched away from GitLab and the current state of forges + +# {title} + +{pagenav 9 min;14 Nov 2026;15 Nov 2026} + +:contents +:numbered +1. {uhref Why I switched to GitLab in the first place} +2. {uhref Moving to...} +.numbered +1. {uhref GitHub} +2. {uhref Self-hosting and cgit} +3. {uhref SourceHut} +4. {uhref Codeberg} + +3. {uhref All in all} + + + +On September 17, GitLab announced that {url they're changing gitlab.com's rate limits;https://about.gitlab.com/blog/rate-limit-change-2026}. +This wouldn't have been a big deal, save for one change: + +> A request that arrives with no credentials gets 60 requests per hour per IP address. + +{i Are you kidding me?!} + +To make it clear, we're {b not} talking about 60 {i pages}, these are {b requests}! +Since everything is loaded dynamically, a single page makes {i multiple} requests to load, which obviously scales with the complexity of a page. + +The result? +This limit can be reached in {b 5 minutes of browsing}... +Blocking your {b entire IP} address from unauthenticated access..... +What's even funnier, loading the landing GitLab page {i also counted to that restriction}....... + +In all fairness, they did eventually fix the main webpage and you could still log in (if you had saved the link to the page). +This did not affect git operations, those have a reasonable rate limit. + +However, this whole fiasco has left me with a bitter taste in the mouth. +I have since moved the overwhelming majority of repositories to other platforms. + +To think I used to like GitLab... + +## Why I switched to GitLab in the first place + +{url I made my account on 02 November 2020;https://gitlab.com/Syndamia}, about 1 year and 9 months after {url my GitHub account;https://github.com/Syndamia?tab=overview&from=2019-01-01&to=2019-01-31}. +The event which moved me to create it has long since been forgotten, because I started using it seriously about a year later. + +For reference, I was still in my early developer stages, having written code non-professionally for about 3 years. +However, it wasn't the growing appreciation for open-source, the availability of GitLab's source code, or the hate towards Microsoft{fn {url Microsoft bought GitLab in 2018;https://news.microsoft.com/source/2018/06/04/microsoft-to-acquire-github-for-7-5-billion/}} of an emerging Linux user which decided the switch (though those did contribute). + +It was the interface. +At the end of the day, the primary difference between different code hosting websites is their UI, features are more or less the same between them and push/pull operations are all the same. + +I'm a desktop computer user, small screens are way too uncomfortable to use for anything serious. +Given that virtually all modern computer monitors are 16:9, sidebars present a much more optimal and convenient way to navigate. +That and the warmer gruvbox-style colors of GitLab at the time swayed me to move the few repositories I had on GitHub. + +The years since have shown me some other cool features, like the ability to turn off a vast majority of features in the sidebar, reducing its size, and project-level snippets. +In 2022/2023 I also dabbled in CI/CD and found GitLab's YML-based system to be simpler and more convenient than GitHub's. + +Up until now everything was great, with exception to the {url 2022 redesign;https://gitlab.com/gitlab-org/gitlab/-/commit/a4ec234db9eb72466dba55caaac79fbca1763163}, which made the colors all cold{fn As a matter of fact, I disliked this so much, I published a {url rough userscript to bring them back;https://greasyfork.org/en/scripts/455131-gitlab-old-dark-colors}. Recent-ish updates broke it, but for a while it worked well.}. +This even prompted me to consider self-hosting an instance, though {url the 8 CPU and 8 GB RAM requirements dissuaded me;https://docs.gitlab.com/install/requirements/}{fn They were probably lower at the time, but not by much (I'm too lazy to look it up)}. + +This request limit makes it impractical to share code anymore. +Do remember, for many projects the repository is the primary website and sometimes just cloning the repository is not good enough. +Even excluding issues, project-specific snippets or releases, the web interface also shows a rendered README, which is supposed to be the entrypoint for a project. + +Looking back now, it seems that GitLab never left GitHub's shadow, and given the way things are going, it never will. +The rate limit change is so fundamental to the entire user experience, I've lost all hope for the future of the platform. + +It is time to move. + +## Moving to... + +After a bit of work I narrowed down my search to a few websites and technologies. +This is by no means an extensive list, these are just the options I settled down on. + +### GitHub + +Everything written so far shouldn't make you think I've abandoned GitHub. +It's just that I used it when there was a reason to. +Many university projects were written there, since that's what lecturers and students used, I didn't want to introduce friction. +Forks of, and contributions to, other GitHub projects were obviously done in the same place. + +Nevertheless, I'm not making it my main software hub. +As already hinted at, I despise Microsoft and their products. +I mean, I wrote a {url blogpost about how they could practically erase the idea of opensource;../microsoft-and-foss-extinguish} back in 2024. + +Since then it has been brought to my attention{fn {url https://github.com/AndrewRadev/}} that in 2023 it was officially stated how GitHub was {url to become an AI-powered developer platform;https://github.blog/news-insights/product-news/universe-2023-copilot-transforms-github-into-the-ai-powered-developer-platform/}: + +> Just as GitHub was founded on Git, today we are re-founded on Copilot. + +Furthermore, as it turns out, their AI assistant Copilot {url is trained on GitHub's repositories;https://nogithub.codeberg.page/}: + +> GitHub Copilot is trained on billions of lines of public code. + The suggestions it makes to you are adapted to your code, but the processing behind it is ultimately informed by code written by others. + +On the topic of AI, I'm not about to go on a 7-minute long description on why I do not support it. +Thankfully, someone else did this for me: {url I Am An AI Hater;https://anthonymoser.github.io/writing/ai/haterdom/2025/08/26/i-am-an-ai-hater.html}. +Consider my thoughts to be accurately materialised in their words. + +### Self-hosting and cgit + +Of course, the possibilities of self-hosting something are endless. +And that is precisely what put me off of the idea for years. + +The server on which this website is hosted is quite underpowered, having only 2 EPYC CPU cores and 2 GB of RAM. +At the same time, I'll be the only person using it, so in reality, I need push/pull support and a very basic interface to browse files and commits {i (without logging in)}. + +This is where I found {url this YouTube video by tsoding;https://www.youtube.com/watch?v=iuIdBfjL62s}. +In short: + +.bulleted +- git has built-in support for synchronising with a remote via ssh +- you can directly clone/push/pull/... from/to any {url bare repository;https://git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server} + +Pretty quickly I setup a chroot jail with {url some convenience scripts;https://git.syndamia.com/conf/git.syndamia.com/cli/} and started moving repositories over. + +Still, my webui problems weren't fixed until I found {url cgit;https://git.zx2c4.com/cgit/about/}. +The entire service is written in C, saving me hassle with the wide variety of bloated nodejs alternatives, the implementation is very lightweight and easy to modify. +As a bonus, it's trusted by some very large projects, like {url The Linux Kernel;https://git.kernel.org/}, {url Qt;https://code.qt.io/cgit/}, {url FreeBSD;https://cgit.freebsd.org/} and {url Gentoo;https://gitweb.gentoo.org/} to name a few. + +It has been in use on {url https://git.syndamia.com} since around 15 March 2026 and I started developing {url my own fork;https://git.syndamia.com/fork/cgit/} since 27 September 2026. +I'm incredibly happy with cgit, nonetheless, it is {b not} the complete solution. + +For starters, it only provides the means to browse repositories from the web. +Issues, pull requests, CI/CD, ... are all obviously not supported. + +As it stands, I've delegated {url https://git.syndamia.com} to personal projects, which shouldn't see any outside collaboration or require deployments. +For the few others which do not fall into this criteria, something else must be used. + +### SourceHut + +An interesting choice out of the more niche source {url forges;https://en.wikipedia.org/wiki/Forge_(software)} is {url SourceHut;https://sr.ht}. +For starters, the URLs themselves are intriguing, the top-level domain is only five characters, "sr.ht". +Moreover, usernames are prepended with a tilde "~"{fn Probably inspired by Apache's antique {url per-user web directories;https://httpd.apache.org/docs/2.4/howto/public_html.html} feature, which as far as I know, once used to be extremely popular, especially in university systems}. + +{url sourcehut.org;https://sourcehut.org}, their "marketing website", showcases a fairly impressive set of features, alongside the standard git web interface: +.bulleted +- {url Mercurial;https://en.wikipedia.org/wiki/Mercurial} support (an alternative version-control system to git) +- Built-in mailing list support, allowing web patchset management +- IRC client and {url bouncer;https://en.wikipedia.org/wiki/IRC_bouncer} with chat log management +- {url CLI tool;https://sr.ht/~xenrox/hut/} with full feature support like account exports and migrations + +Services are plentiful and you can pick & match what you want. +{url The pricing page;https://sourcehut.org/pricing/#service-availability} splits the platform into 9 different services. +Oh, did I not mention, SourceHut is paid for. +Not for everything, a free account allows you to contribute and browse without hassle. +And yeah, as a measure against AI crawlers, source code and commits are not publicly available without an account. + +These restrictions kind of defeat my use case: browsing without an account is not really possible. +Pricing is not very high, 4€/month without VAT{fn Because {url VAT is different between union-members;https://europa.eu/youreurope/business/finance-and-tax/vat/vat-rules-rates/index_en.htm#functional-toggle-3}} at their cheapest tier. +I'm not against paying that, though at the same time I'm already paying for my self-hosted repositories, do I really want to pay more? + +Another issue I have is with the UI itself, I find it somewhat clumsy. +Something about the color scheme makes it hard for my eyes to lock into different layout components{fn Different themes are not available in the platform itself. I'm primarily focused on what the service provides, you could always cobble together a userscript/extension which changes the colors.}. +Likewise, the way navigation is done feels sluggish. + +A project/hub contains source repositories, mailing lists and tickets across all repos. +Below that you'll find the particular repository's file listing, commit log and refs. +Beneath both are shown the file(s), log and blame. +For markdown documents, a fourth level is shown with which to switch between rendered and source view. + +This multilayered approach feels to me like I have to navigate an unnecessary amount of menus and sub-menus to see what I want. +Perhaps I'm just too used to how things are done in other forges. +One of the primary changes in my cgit fork is about simplifying the repository summary page: adding a file listing and README rendering right below a few commits and refs (highly reminiscent of how GitHub/GitLab does it), instead of only{fn Evidently I'm skipping over some elements\; you get the point.} showing commits and refs. + +All of these dullnesses have swayed me away from using the forge or self-hosting it. + +It should probably also be addressed who runs the show. +We already know GitHub is owned by Microsoft. +GitLab is {url publically-traded;https://finance.yahoo.com/quote/GTLB/} so I would argue it is ran more by the shareholders and tech trends than someone with a particular vision. + +SourceHut is founded and maintained by {url Drew DeVault;https://drewdevault.com/}. +He is a fairly controversial figure, especially for his editorial work on the {url Stallman report;https://stallman-report.org/}. +At the same time, {url the sway window manager;https://swaywm.org/} and {url wlroots;https://gitlab.freedesktop.org/wlroots/wlroots} (the library behind {url Hyprland;https://hypr.land/}) were originally made by DeVault. +Likewise, in August {url use of LLMs was entirely prohibited on SourceHut;https://sourcehut.org/blog/2026-08-27-tos-changes-and-llms/#changes}, which is a plus. + +Personally, I trust his technical skills and don't really hold any qualms against him; I wouldn't consider myself tapped in enough to judge his character. +Even so, his involvement might drive others away, I found it relevant to mention. + +### Codeberg + +Funnily enough, I made a Codeberg account {url on 8 Jun 2022;https://codeberg.org/Syndamia}. +Obviously the exact reason has faded from my memory, though I'm pretty sure it was because I wanted to add another star to the {url SpywareWatchdog repository;https://codeberg.org/shadow/SpywareWatchdog}, whose badge is prominently featured on the front page of {url this website;/}. + +Codeberg is powered by ({url a fork of;https://codeberg.org/Codeberg-Infrastructure/forgejo}) {url Forgejo;https://forgejo.org/}{fn Should be noted that the Forgejo project itself is {url in the custody of the Codeberg non-profit;https://forgejo.org/faq/#who-owns-the-forgejo-domains-and-trademarks}}, itself an open-source fork of the now disgraced {url Gitea;https://forgejo.org/2022-12-15-hello-forgejo/}. +Per contra to SourceHut, it's UI mimics the older GitHub interface and the free tier is much more permissive. +Even though their colors are cold and dark too, I find them much more pleasant. +Evidently, you can self-host it and on a fairly weak machine: 1-2 cores with 1-2 GB RAM (still a tad too much for me, though marginally more enticing). + +Moreover, this is the first forge thus far which is operated by a non-profit: {url Codeberg e.V.;https://docs.codeberg.org/getting-started/what-is-codeberg/#what-is-codeberg-e.v.%3F}. +Their budgeting is {url public;https://codeberg.org/Codeberg-e.V./Documents-Public/src/branch/main/2026/01-01-Financial-Plan-Budgets.pdf} and it's direction is governed by {url the vote of active members;https://codeberg.org/Codeberg-e.V.#repositories} (anyone can {url subscribe for membership;https://join.codeberg.org/?lang=en}). + +Oh, and one more thing, SourceHut's ban on LLMs was influenced by the earlier {url Codeberg ban on LLMs;https://blog.codeberg.org/protecting-our-floss-commons-from-llms.html}. +That doesn't eliminate the ability for there to be problems though. + +In {url July 2026, a ToS change was committed, following member vote, to "Disallow cryptocurrency projects";https://codeberg.org/Codeberg/org/pulls/1254}. +Unfortunately, the way in which this change was implement has been vague. + +The "final" verdict as of writing has been that ({url confirmed by a member of the Codeberg presidentium;https://codeberg.org/Codeberg/org/pulls/1254#issuecomment-19924861}): + +> If a project does not harm the reputation of Codeberg (e.g. by scamming people or doing other shady stuff) it does not fall under this specific rule. + And if it did, it would be a TOS violation even before the change. + Cryptocurrency (the scammy kind) was just added as an example here. + +At the same time, on the website {url a banner with the following message was introduced;https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/8a75226bbb940a7689a5f07ac4916161bcc14a11}: + +> Cryptocurrency projects are no longer allowed + +All in all, I would say this ToS change should've been handled better. + +Nevertheless, I like the idea of having my code under the control of a non-profit, instead of for-profits which thus far have shown to eventually ruin their entire platform. +Forgejo doesn't have the few things I really liked about older GitLab, yet it feels the best of all modern FOSS systems. + +For those reasons, I've decided to host all larger/collaborative projects to Codeberg for the foreseeable future. +In reality, none of my work is popular enough for any of this to matter. +Even so, I hope one day it will gain some traction and maybe even persuade more interest in Codeberg itself. + +Only time will tell. + +## All in all + +{url I Am An AI Hater;https://anthonymoser.github.io/writing/ai/haterdom/2025/08/26/i-am-an-ai-hater.html} + +GitLab's future is bleak, GitHub's bleaker. +SourceHut is interesting but too obtuse for me. + +Codeberg is maintained by a non-profit and its system looks great. +cgit is fantastic for self-hosted repository navigation and extensibility. + +{footnotes} |