{"id":546,"date":"2026-09-06T01:10:49","date_gmt":"2026-09-06T04:10:49","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/2026\/09\/a-historia-do-gitlab\/"},"modified":"2026-09-08T07:57:21","modified_gmt":"2026-09-08T10:57:21","slug":"a-historia-do-gitlab","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/a-historia-do-gitlab\/","title":{"rendered":"The history of GitLab: the tanuki that came out of Ukraine"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro empurrando a esteira da pipeline do GitLab, com a raposa do projeto acima\" src=\"\/wp-content\/uploads\/2026\/09\/gitlab-historia-v2.webp\" width=\"1052\" height=\"652\" \/><\/p>\n<p>On 8 October 2011, Dmitriy Zaporozhets made GitLab's first commit. His house in Ukraine had no running water; the communal well was the smaller problem \u2014 he lacked a Git tool he could change. Ruby on Rails, inspired by GitWeb, built with Valeriy Sizov. Fifteen years later, GitLab 19.3.1 (26 August 2026) still ships at its usual pace: one release a month, 177 consecutive releases through June 2026. From the well to Nasdaq. The orange tanuki in between.<\/p>\n<p><!-- more --><\/p>\n<h2>Ukraine, 2011: Rails against closed GitHub<\/h2>\n<p>Dmitriy (Dmytro) Zaporozhets wanted to collaborate with his team without GitHub owning the workflow. Self-hosted, open source, installation a human could handle. The name came from GitWeb and the \u201cgit something\u201d family. The initial commit is in the <code data-no-translation=\"\">gitlab-foss<\/code>: 9ba12248, 8 October 2011. It was not a company. It was weekends and nights.<\/p>\n<p>The <a href=\"\/en\/2026\/09\/a-historia-do-git\/\">Git<\/a> was already the disk. What was missing was the forge: issues, merge requests, wiki, permissions, web. Gitorious existed. GitHub was already the social default. GitLab was born on the self-hosted side \u2014 the server a company installs without sending its code to California.<\/p>\n<h2>2012: pancakes, Hacker News, and CI<\/h2>\n<p>Sytse Sijbrandij \u2014 Dutch, later Sid for American investors \u2014 saw the project, read the Rails code, and liked its quality after three hundred commits. He posted on Hacker News asking who wanted a GitLab.com. The post did not gain traction. He went to make pancakes. His phone lit up. His wife took over the frying pan; Sid spent the day replying. Hundreds joined the beta.<\/p>\n<p>In November 2012, Dmitriy committed the first version of GitLab CI. Other forges treated CI as a plugin. GitLab treated it as the same product. That decision \u2014 one application, from issue to deployment \u2014 is the \u201cmaster plan\u201d that would only get its name in 2016. Runner, <code data-no-translation=\"\">.gitlab-ci.yml<\/code>, pipelines in merge requests: everything flows from there.<\/p>\n<h2>2013\u20132014: EE, the company, day 22<\/h2>\n<p>Large organizations asked for features CE did not have. Dmitriy tweeted that he wanted to make a living from GitLab. Sid and he finalized GitLab Enterprise Edition on 22 July 2013 \u2014 open core: CE under MIT, EE with what telecom companies and banks pay for. Sid made the website's initial commit. GitLab B.V. in Utrecht; later GitLab Inc. in the US, with no headquarters. The first employee was from Serbia. Dmitriy, Ukraine. The Dutch people Sid hired stopped coming to the extra desk at his house on the third day. Remote work was not ideology. It was what remained when nobody showed up and Slack already did the job.<\/p>\n<p>In 2014, the company became an LLC. GitLab Cloud was renamed GitLab.com. Releases on day 22 of every month \u2014 6.5 in January, 7.6 in December \u2014 and the schedule has not broken since. At the end of the year, they submitted their application to Y Combinator.<\/p>\n<h2>2015\u20132016: YC, handbook, master plan<\/h2>\n<p>The winter batch of 2015 brought almost the whole team to the Valley. Nine people at graduation in March. The GitLab Handbook entered the website repository: values, hiring, onboarding, salaries, everything public by default. CREDIT: Collaboration, Results, Efficiency, Diversity, Iteration, Transparency. Transparency was also a defense: commercializing open source often kills the community; the handbook was the antidote Sid described.<\/p>\n<p>They bought Gitorious (2015) and migrated users. Khosla, seed funding. In 2016, the master plan: not to be \u201canother GitHub,\u201d but the entire DevOps platform. Series B of US$ 20 million. More than a thousand contributors, a hundred thousand organizations. The team grew beyond 140.<\/p>\n<h2>31 January 2017: rm on the wrong database<\/h2>\n<p>Snippet spam brought down GitLab.com's PostgreSQL. In the middle of replication recovery, a sysadmin ran <code data-no-translation=\"\">rm -rf<\/code> in the data directory thinking it was the secondary. It was the primary. 300 GB became 4,5 GB. The S3 backup was empty: <code data-no-translation=\"\">pg_dump<\/code> 9.2 against Postgres 9.6, the job was failing silently. There was no database disk snapshot. Restoration from a six-hour-old staging copy. Issues, MRs, and users from the 17:20\u201300:00 UTC window were gone; Git repositories and wikis were not \u2014 they live on another disk. Nobody touched self-hosted instances.<\/p>\n<p>The postmortem was public, with a live Google Doc. The lesson stuck in the culture: a backup that cannot restore is not a backup; production consoles need guardrails; the handbook's transparency also applies when the tanuki takes a beating. That same year, they bought Gitter.<\/p>\n<h2>What the tanuki is underneath<\/h2>\n<p>It is not a Git daemon with a skin. It is a stack:<\/p>\n<ul>\n<li><strong>Rails + Puma<\/strong> \u2014 the app. Issues, MRs, CI, registry, packages, wiki.<\/li>\n<li><strong>Gitaly<\/strong> \u2014 RPC in front of the Git repository. Without it, the old NFS setup does not scale.<\/li>\n<li><strong>Workhorse<\/strong> \u2014 the Go proxy that handles uploads, git-http, and what Rails should not see.<\/li>\n<li><strong>PostgreSQL + Redis<\/strong> (Valkey becomes an option in 18.9 because Redis changed its license) + Sidekiq.<\/li>\n<li><strong>Omnibus<\/strong> \u2014 one package, one <code data-no-translation=\"\">gitlab.rb<\/code>, <code data-no-translation=\"\">gitlab-ctl reconfigure<\/code>. Helm for Kubernetes.<\/li>\n<li><strong>Runner<\/strong> \u2014 the agent that picks up CI jobs. Shell, Docker, Kubernetes executor.<\/li>\n<\/ul>\n<p>CE under MIT (and other components). EE source-available, paid. GNOME moved to GitLab in May 2018; KDE, 2020. The self-hosting GitHub Enterprise charged heavily for, GitLab offered free in CE \u2014 and sold the rest in EE. The Terraform pipeline shortcut on this blog is in <a href=\"\/en\/2019\/12\/terraform-pipelines-in-gitlab\/\">Terraform pipelines in GitLab<\/a>. Anyone wanting a smaller forge, in Go, should look at <a href=\"\/en\/2026\/09\/gitea-git-self-hosted-runner-tea\/\">Gitea<\/a>.<\/p>\n<h2>All-remote, IPO, the CEO who left<\/h2>\n<p>Before the pandemic, GitLab already marketed itself as the world's largest all-remote company: 1.200 people, 65 countries, zero company offices. The San Francisco one, with 15 seats, repeated Sid's desk pattern: the salesperson stopped going. Hybrid, the handbook says, is the worst of both worlds \u2014 two ways of talking. WordPress and InVision were the only peers investors cited. Then investors became advocates of the model: faster hiring, lower costs.<\/p>\n<p>On 14 October 2021, GitLab Inc. went public on Nasdaq, ticker <strong>GTLB<\/strong>. Ten years after the first commit. Price US$ 77; opened at 94, closed at 103. More than a million licensed seats, 30 million registered users at the time. In 2023, Gartner created the DevOps Platforms quadrant and placed GitLab as a Leader. FY2024 brought the first quarter of non-GAAP operating profit.<\/p>\n<p>In December 2024, Sid stepped down as CEO for health reasons. Bill Staples took over. Sid went on to build Kilo Code, an open source AI agent. The handbook remains the same document. So does the release on day 22 (now on a varying Thursday, but never missing a month).<\/p>\n<h2>2026: 19.3, Duo, Valkey<\/h2>\n<p>The fiscal year that ended on 31 January 2026: revenue of US$ 955,2 million, +26% over FY2025. 172 consecutive monthly releases at that date; by June, the company's website already counted 177, 50 million registered users, 2.500 team members, 5.500 contributors. GitLab 18 was the year of Duo Agent Platform (GA in 18.8). 19.0 shipped on 21 May 2026. The <strong>19.3<\/strong> on 20 August; patch <strong>19.3.1<\/strong> on 26 August. Redis AGPLv3 pushed Valkey (BSD) into Omnibus, opt-in since 18.9.<\/p>\n<p>The positioning changed its name \u2014 DevOps, DevSecOps, \u201cintelligent orchestration\u201d \u2014 but the disk is the same: a YAML file, a runner, an MR. Self-hosted on Ubuntu still means Omnibus or Helm on top of <a href=\"\/en\/2026\/09\/a-historia-do-kubernetes\/\">Kubernetes<\/a> and <a href=\"\/en\/2026\/09\/a-historia-do-docker\/\">Docker<\/a>. Git underneath has not changed: <a href=\"\/en\/2017\/04\/git-simples-e-rapido\/\">Git made simple and fast<\/a>.<\/p>\n<h2>Wrap-up<\/h2>\n<p>Rails in Ukraine, a Dutchman with pancakes, and a Japanese mascot (the tanuki, a raccoon dog, is not a fox). Open core, an open handbook, never missing a month on the schedule. GitHub got the social network for code; GitLab got the server companies install and the pipeline GitHub went on to copy. 19.3.1, Gitaly, runner, CE MIT. The well dried up. The tanuki did not.<\/p>\n<p>The history of the disk: <a href=\"\/en\/2026\/09\/a-historia-do-git\/\">The history of Git<\/a>. The leaner sibling forge: <a href=\"\/en\/2026\/09\/gitea-git-self-hosted-runner-tea\/\">Gitea<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>On October 8, 2011, Dmitriy Zaporozhets made GitLab\u2019s first commit. His home in Ukraine had no running water; the community well was the smaller problem \u2014 what he lacked was a Git tool he could change. Ruby on Rails, inspired by GitWeb, built with Valeriy Sizov. Fifteen years later, GitLab 19.3.1 \u2026 <a title=\"The history of GitLab: the tanuki that came out of Ukraine\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/a-historia-do-gitlab\/\" aria-label=\"Read more about A hist\u00f3ria do GitLab: o tanuki que saiu da Ucr\u00e2nia\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[103,46,2,111],"tags":[105,47,48,247,104,246],"class_list":["post-546","post","type-post","status-publish","format-standard","hentry","category-cloud","category-devops","category-linux","category-opensource","tag-ci-cd","tag-devops","tag-git","tag-gitaly","tag-gitlab","tag-tanuki"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=546"}],"version-history":[{"count":3,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/546\/revisions"}],"predecessor-version":[{"id":1160,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/546\/revisions\/1160"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}