Gitlab from YC to IPO
blog.ycombinator.com
blog.ycombinator.com
I honestly didn't think they stood a chance.
I'm happy to have been proven wrong. Congrats to the whole team on their successful exit!
Gitlab is hostable software. You can buy and host Gitlab on your own servers, in private. That makes it a fundamentally different market than Github.
Yes, that's what Github Enterprise Server is:
https://docs.github.com/en/enterprise-server@3.2/admin/overv...
We tried it for a year and didn’t like it
GitHub has less features but the UX around PRs is 10x better IMO
Not going to lie, simply keeping my code away from MS is a good enough use case.
Trusting Gitlab more than Github is naive at this point. They are in the position of needing to generate as much revenue as possible to satisfy their investors. Github is not in this position anymore.
Open Source isn’t some weird religion where it only matters if you open source the stuff that makes you money.
I haven't been following it but is all that renounced so it can't possibly come back or be applied to the next people?
My first reaction is "How do we know that releasing the code isn't just bait?"
Yet they love Open Source so much they use patents aggressively to extract resources from the Android project.
Don't believe all the BS made by the Microsoft PR.
Stop doing shady shit. The whole .NET Foundation kerfuffle from last week... Or concerns about how Copilot trains its data...
I like some of the open source work they do. It's nice that they opensourced LSP and built VSCode. I like some of the language research they do (their contributions to Haskell, Pony and F* more or less originated there, plus their mainstream languages) but can't shake the feeling that they only embraced open-source to get developers back on their side after losing out on mobile and much of the initial cloud rush.
Anyhow, I use some of their stuff, but I only trust the licenses, not the company. Not huge on having them lock me into a platform.
I agree that the main reason they're doing good things for developers is to get developers on board. But that doesn't negate that they're doing good things for developers.
I do not believe that Microsoft is fundamentally on board with the open source model. Its an alliance of convenience. If suddenly they think they can make more money some other way, they'll do that. They might not even actually destroy anything explicitly, merely ruin things out of indifference.
https://about.gitlab.com/handbook/marketing/strategic-market...
NOTE: I'm not associated with GitLab at all I just found the topic interesting. I don't know of many other projects that actually do things this way, with all the commercial licensed code mixed in with the open source code.
This was kind of an interesting speech I found searching around: https://www.heavybit.com/library/video/commercial-open-sourc...
I’m personally extremely pro Source Hut but it’s not ready yet: https://sr.ht
On topic, GitLab is great at CI/CD and awesome for self-hosting things.
Not because GitHub is bad in any particular way, I just like the feature set and UI of GitLab better. Less of a "Hyundai vs Mercedes" thing, and more of a "Ford vs Chevy" thing.
They're both decent and they both have approximately the same level of "premium-ness". They're just feature-wise and aesthetically slightly different in arbitrary ways. And some people either do or don't vibe better with the one or the other.
If I'm not convinced to invest after one meeting, I usually don't invest. On the other hand, if I'm convinced after five minutes, I'm usually asking where to send the wire by the end of the meeting.
Armory is a good example of an open source/open core company I did invest in. They had me convinced in just a few minutes. They had an answer for every one of my objections and made me feel like I'd be missing out if I didn't invest. And so far they're doing really well and it's one of my best investments to date.
And if you're selling a product, make sure you know your competitors well because a lot of objections will be in the form of "but competitor X does this, how do you solve that problem?" and "what do you do that X doesn't do?". So you better know X really well because the person you're talking to already does and will know if you're making stuff up.
As cynical and hollow as it sounds, pretty sure this advice is consistent with what I have heard in multiple videos and blogs from YC.
See also: "create investor fomo", https://html.duckduckgo.com/html/search?q=create%20fomo%20in...
Ultimately you care about the latter and you don't always need the former to get there.
And I’d modify one thing you said: I believe the #1 most important skill for a startup CEO to master is storytelling —- which is critical for selling, fundraising and recruiting. https://www.founderculture.net/c/new-noteworthy/the-1-must-m...
Sun bought MySQL for 1 billion USD in 2008, does that not count as successful?
Also, MongoDB, Elastic and many many others...
For any criteria (open source or github as a competitor in that case) you will find some company that became successful. Even the worst one.
If you are looking to invest in patterns what makes you special?
I thought the idea was to look for outliers.
Also, I never said I was any good. :)
I guess the trick is for it to also be a SaaS offering that no one wants to host themselves or whose moat isn't the time to write the code.
(For all we know, their 'true' odds of success might have been really slim, and they just got lucky.)
I just stick my money in widely diversified, low-cost ETFs, since I don't expect to know more than the market.
We've been GitLab customers for 2-3 years now (what was attractive was having "everything in one SaaS subscription") and it's worked out quite well.
There's always papercuts for sure and the product could always use more polish, but overall it has been nice to have most of our dev processes under one umbrella.
Now when is Hashicorp going public? I've got my wallet ready for that one.
[1] https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
Try looking for "gitlab CEO here" (with quotes) at the bottom search on HN? (and pick Comments. they won't show up in stories.)
Sid came to the office and talked to us about some strategies Gitlab used for remote work, timezone differences etc.
Not only the talk was very helpful, Sid was an incredibly clear communicator, calm and humble. He really seemed to be a great leader and someone it must be nice working with.
And their handbook: https://about.gitlab.com/handbook/
I very much appreciate them making that public.
Their kanban is 10% more functional than Trello, which is all our small team really needs, they give you everything and they don't nickel and dime you.
The only feature I would like to see improved is their PR process. Seems a bit buggy with remotely large changesets, and the digest for the PR should provide a bit more context to reviewees.
They may have fixed this since last year, but it was super, super annoying to me at the time.
In all honesty, their pull request pages need a lot of UX work: too much stuff going on on the overview pages, jumping to unresolved threads does not work when they are in previous commits...
There's also that merge train confusion where merge trains get "cancelled" without an obvious explanation ("this was cancelled because it is included in a new one" would do). In a sense, I'd say that their UX is pretty bad, but the API is not much better either (you can't fetch pipeline log files with individual script timings that you see floating on the right in the web UI). If anything, all of this only goes to show that you don't need to be perfect to be good!
But I applaud the effort, mission and dedication they put up, and especially their open core nature.
Congrats on the IPO and keep pushing forward.
That said, MRs with over 1000 lines of changes are painful sometimes impossible to review. Even small MRs feel clunky, due to how many panels there are (yes, I know they're collapsible). Because MRs are one of our most used features, it sometimes makes me consider switching to GitHub for their much nicer PR UX/UI.
https://stackoverflow.com/questions/40217494/how-to-review-a... says IntelliJ has GitHub-only specialized PR review/commenting.
For really large MRs, I use Tower + Kaleidoscope to view the changes. But then I can't easily leave a comment on a line of code (a big part of the review process)
Always surprised to see people resolving merge conflicts anywhere other than their IDE, IDE has the most knowledge about the inputs to the merge and your chosen resolution, why would you ignore that important info? (like.. does the resulting file compile? for ex..)
I've been working with some peers on a better code review tool since hearing about Phabricator shutting down: https://graphite.dev/
It syncs all data to GitHub while offering things like a review queue, gif reactions, stacked diffs, etc - all inspired from Phabricator.
"I do think that people still, to this day, think of GitLab as one of our main competitors, and I never have ever saw GitLab as a competitor."
https://www.lastweekinaws.com/podcast/screaming-in-the-cloud...
Anyone have thoughts on that? Or pointers to more reading?
GitLab is years ahead of GitHub for certain stuff (e.g. CI/CD) and IMO it has a better commercial offering for business.
I use GitHub as my portfolio profile for free and GitLab in my $JOB.
That's my opinion tho, I'm just a person who uses both.
Source: an employer of mine nerfed the GitLab database and support to fix it was not an option, so we had to migrate to their cloud offering.
Not having backups for gitlab on prem is just lazy system administration.
I've heard Jenkins is a nightmare to administer (not sure about the new versions). Seems like an opportunity: the power of Jenkins with modern sensibility.
Every new permutation of parameters is a new chance for something to go wrong, and there's basically no sane way to unit test or validate any of your "helper" functions, so they're all write-once-change-never.
Which is not necessarily a problem inherent in Jenkins— Jenkins just gives you more than enough rope to hang yourself. GitLab CI can get silly too, but culturally it inherits from the much simpler Travis model, where you're basically expected to just be wrapping some other build tool (eg, tox from the Python world) rather than rolling the whole thing yourself.
You end up with this:
https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e412...
Yes. One thousand times this.
If you are running simple scripts it's fine. If you are using the declarative pipeline, it's fine. The moment you start adding Groovy you'll be down a path that is filled with sadness and anger. Mind you, even the folks behind Jenkins will advise you not to use any complex Groovy scripts(including for performance reasons - you can easily overwork the jenkins master).
I've been focusing on Concourse because it forces the usage of containers for everything. You don't have to care about what's installed in the worker node, you just use a container that has the stuff you want. Simple inputs and outputs.
You _can_ do the same sort of thing with Jenkins (but be aware of all the bugs still open regarding containers). But Jenkins doesn't force you to do anything, nor it gives you an easy and out of the box solution to string containers together. Left unchecked, you have your reproducible builds running in completely unreproduceable magical build machines – that noone really understands how it all works.
Did a migration of a few hundreds of pipelines from one server to another and it exposed a lot of dependencies we didn't know we had. Plugins, jars, packages installed in build machines, you name it.
If you must use Jenkins, please try to avoid Groovy to the max, write anything that's non-trivial as an executable (even if it is a bash script) and call it from the main pipeline. Use containers if you can to avoid build machine dependencies. Try to use declarative pipelines too unless your jobs are very simple, and avoid the 'script' blocks. Do not use the scripting pipeline to avoid inviting groovy to your home.
You can thank me in a couple of years.
Mind you, the Groovy stuff was implemented as an afterthought, and if you aren't handy with Groovy (I am) it can be challenging to learn. But compared to the horrible GUI-driven alternative, it was a no-brainer in the end.
Really, the more you're doing CI, the more you want scripts - doesn't have to be Groovy. I'd honestly be perfectly fine just doing things with a bash shell on a vanilla linux install. I only use Jenkins because my team insists on it, for what? So we can put a web UI in front of CI. I'd even tend to agree that with supply-chain attacks being what they are, and jenkins being a never-ending fountain of security patches, putting a web UI in front of CI isn't worth it.
But at least the groovy part makes life bearable.
A lot of our Jenkins issues came down to “we are not very good at managing Jenkins”, but even if we where the massive jump in productivity, flexibility and team independence we saw after rolling it out makes me believe it’s just better.
Then there's dependencies between jobs which has gotten better lately but again it seems less developed compared to Jenkins. I also managed to kill the web UI with some of my pipelines when using dependent jobs because the javascript fails somewhere deep when trying to visualise the pipeline and the page just stays blank.
Honestly it really depends on what you're doing. If you're mostly replacing automated builds and tests triggered by git changes then GitLab works just fine.
That said, GH actions is really new and full of imitations / weird stuff as well. I still think GL offers more bang for the buck in 2021.
Another option is using something external like Drone CI, Circle CI, etc... Some of those look nice, but I've never tested myself.
My company extracted us from github+teamcity paradise to force fit us to gitlab, it's not going well. Try both and for real, build a real project pipeline and see if that works for your dev before moving to either.
I could go on and on, Github Actions are horrid compared to Gitlab. I wish, wish wish I could go back but I don't have that power here. Github doesn't have scoped issues like Gitlab, the issue board is so lacking, "projects" is stale and featureless so many things.
But I AM the one who deals with the aftermath. I've spent days fixing one simple github action and I have plenty I don't even wind up deploying they're so problematic.
Jenkins has felt like an unfinished weekend project for going on ten years now. It may once have been state of the art, but that was in a time when people barely knew what a xmlhttprequest was.
I wouldn't be surprised if you tried asking random people in public or in a university whether they know GitHub or GitLab and came to the conclusion that GitLab basically does not exist for many people.
Especially for newer programmers, the vast majority tutorials/educational courses and whatnot probably don't even mention any alternatives to GitHub, much less an explicit reference to GitLab.
I say we just give it time, GitLab as a company seems like a way more inviting environment to me and if they keep up the good work GitHub may have to start acknowledging them more.
When I first heard of GitLab, I assumed it was GitHub's "experimental" playground where they test features before deploying it on GitHub ... the power of branding ...
Many hard core gamers will have both. My Switch is for Smash Bros and the Advance Wars reboot. Advance Wars was one of my favorite games as a kid, and I'll pay 300$ for a machine just to play it.
The Series X also plays games, but it's a completely different experience. No one expects Switch quirkiness on an Xbox, and no one expects 4K gaming on a Switch.
GitHub is for your public portfolio. Gitlab is for getting stuff done once your GitHub portfolio lands you a decent job.
GitHub is synonymous with programmer portfolio, but it's CI/CD system is rather primitive.
I don't think Gitlab is a serious player outside of enterprise clients. But that's where the money is.
You can only sell so much to the front office, if it's significantly harder to get things working on Azure, new features are going to ship later if they do at all.
Back in 2014 I started at a company that was still using a hand-rolled git server. They tried out Github enterprise but were unsatisfied with GH's lack of LDAP integration, so they were going to continue to frankenstein their in-house git server. I pitched them Gitlab instead, which did pretty much everything GH enterprise was doing, plus LDAP integration, plus was a fraction of the price. They were sold, I migrated the company to Gitlab, and continued to be impressed as Gitlab ran laps around Github on features.
Monopolists love to talk about have they have competitors and act like they’re in competition.
Competitors love to downplay that they have any competitors at all and try to upsell their business like they’re monopolists.
I do think they are in a different market though. In that despite there is a Github Enterprise Product, the self host market shares are going to GitLab for one reason or another. i.e I would not be surprised if GitLab is actually winning in Enterprise / Big Spending Client self hosting Market.
For Github, it seems most of its strength is in their SaaS, contractors and SME which trends towards this solution. Your personal contribution to Open Source as well as profile / portfolio would also live on Github like on a Social Network.
And I can see both Github and Gitlab continue to evolve their strength for at least another 5 years. Generally speaking I dont see how Gitlab could ever compete with Github on SaaS given the advantage M$ has with Azure and DataCenter infrastructure as well as social reach. While Github wont have an easy path to evolve into something that compete directly with GibLab on self hosting solution and their trend is to move towards Azure Cloud solution offering to further gain synergy with other Microsoft Enterprise products.
I do wish Gitlab put lots and lots of work into performance though. As in performance improvement measured in order of magnitude, not small percentages.
It just feels like it does too much, and unless you want to commit to having everyone using it for _everything_ the pricing doesn't seem to make sense.
Our spend would be much higher (probably 3-4x) if they allowed some type of reasonable mix of license levels.
If Github's not careful, Gitlab will eat their lunch.
Gitlab should be careful not to make their product into "The Homer" [1], though.
Also, it sounds to me like Github is leaving the old lunch of "Git hosting + issue tracking" on the table, and moving on to being a kind of web-based all-in-one full-service collaboration/dev platform with a social network built in. So even if Gitlab picks up some single-digit-percentage market share, that's not what Github cares about anyway.
Why would I want a social network built into my version control & ci/cd pipeline (I assume you're referring to the "stars" feature, and not about issue reporting).
Maybe I'm just a curmudgeon, but I'm sort of sick of everything becoming a social network. I neither have nor do I want internet clout, and all social networks feel like they're trying to force me into "keeping up with the Jones'" in whatever way they're relevant.
Also for people looking for jobs it can be a tool for self promotion.
It has its merits for search and discovery.
I've always seen GitLab as a useful tool for smaller companies where you can use it to replace several other applications (e.g. JIRA, Jenkins, or wiki), but if your company already has those established it all becomes somewhat useless.
> We do not have an adequate history with our subscription or pricing models to accurately predict the long-term rate of customer subscription renewals or adoption, or the impact these renewals and adoption will have on our revenues or operating results.
For context, GitLab recently axed their lowest priced plan and grandfathered in existing users at cheaper rates for the next year. Their retention rate may drop once discounts run out and the new pricing kicks in.
As to the parent's comment about "The Homer" and non-core features being bad, I'd point to their CI autoscaling solution as an example of being underdeveloped, over-marketed, and suffering from technical debt. Their autoscaler uses docker machine behind-the-scenes, which hooks into various cloud providers to abstract away the act of spinning up new VMs. It works reasonably well, but Docker has archived the repository and no longer supports the software. GitLab forked the repository and maintains it for critical fixes, but is not willing to develop or accept new features. It has been known to break against new versions of Docker, does not handle concurrency very well in new environments, and does not allow [1] executing multiple concurrent jobs within spun up VMs, despite marketing that it can [2].
While the autoscaler does work, it's limitations and quirks reduces it's utility and cost-savings significantly within smaller organizations. The technical debt leaves me doubting any improvements will come within the next few years as they try to architect a new solution to replace the existing one.
I have no idea how GitLab compares in other areas, but within CI autoscaling it seems they're stuck with a cliff to climb down before they can move forward again.
[1]: https://gitlab.com/gitlab-org/gitlab-runner/-/issues/2787#no...
[2]: https://about.gitlab.com/blog/2017/11/23/autoscale-ci-runner...
The hoops you have to jump through in Github are absolutely unfun.
That explains a lot. I thought Sid was an unusual name for someone with that surname. But it makes business sense to use something more internationally pronounceable.
I liked it, used it occasionally, but didn't care much about it until Github was purchased by Microsoft. I didn't have a problem with Microsoft buying Github per say, but it made me realize that Github could be bought, and it wasn't some kind of glorified charity. I don't think MS has done a bad job with Github at all, but the very fact that the biggest home of open source itself isn't open source made me uneasy. On the day the MS buyout was announced, I moved all my Github repos to Gitlab.
Gitlab, while still a for-profit company, at least believed in open source enough to release the source code for their core product into the wild, and have proven that they can be successful doing it. I'm extremely happy that they've managed to create a pretty outstanding project that I am happy to use, and I just bought three shares to prove my dedication to it.
Maybe my brain is in a post-lunchtime stupor, but what or who is an "EA"?
https://forum.gitlab.com/t/cant-open-the-signin-page-it-keep...
However: If they don't want to (fully) sell basing the price on a value someone else might eventually pay for a (full) acquisition doesn't make much sense. (Unless you assume they revise the decision, but then the argument about not selling is moot again)
The argument Here was "ORCL, MSFT, SalesForce and a few others would pay 10B+" but those would pay those valuations only for full control.
FB's market cap is around 900B$. Gaining full control over FB would be valued a lot more.
The bull argument probably looks something like: replace Microsoft Office 365 / Azure with an integrated "self-hosted" solution, easily deployed to any commoditized compute...handled by GitLab for paying customers, assurances of "escape hatch" to DIY open-source when you stop paying.
If you had you would've had a 30x return today... (current market cap is ~$112 billion).
God forbids if you bought square long ago and didn't hold long enough, they had multiple years of ups and downs.
https://www.sec.gov/Archives/edgar/data/0001653482/000162828...
GitLab being ~$10B 4 year later seems like similar ballbark. There is always the possibility of acquisition in the future.
(EDIT: had names reversed)
That's a bit of an alternate timeline.
Much as I personally prefer GitLab, GitHub had a bigger customer base back then than GitLab has now. GitLab may be gaining market share, but it’s mostly eating Atlassian’s portion of the market and not GitHub’s. It’s plausible GitHub undervalued themself in the sale to Microsoft of course, so a careful look at the numbers is required to evaluate the valuation, but the value comparison isn’t a great sign to me.
Separately of course, GitLab might be in line with the valuation of companies on the stock market in general which have ballooned heavily in recent years. Whether that's a bubble or permanent inflation in stock prices then becomes the relevant question to answer, I suppose.
It's worth considering that between 2018 and now, tech valuations have exploded. MSFT is up 300%. QQQ is up 100%. I doubt GitHub is valued anywhere near 7.5B today.
Their S-1 says GitLab generated revenues of $152 million in FY 2021 (ending Jan 31), up 87% from the year before². For the sake of argument, let's assume their growth rate slows down "slightly" to 50%. That's ~$230 million projected for FY 2022
At $10 billion, that implies a forward revenue multiple of ~43.5x, which does seem high—but it's not necessarily "unjustified". I haven't read the S-1 and the market reaction to the IPO has been quite positive so far. You'd need to know the business and the market well to make your own individual assessment of why it commands this premium multiple. Customers, TAM, growth, churn, competition, etc.
––––––––––
1. For better or worse, relative valuation is viewed as "more defensible". If you're wrong, you can simply say, "well, that's how the market was pricing it at the time" whereas if you are wrong with your intrinsic valuation model (like a DCF), you have no one to blame.
2. https://www.bamsec.com/filing/162828021018818/1?cik=1653482&...
They can't pull that trick again.
It is hard to compete with AWS, and a lot easier if you own the UI+APIs for how software teams do CI+CD: you become a default preferred vendor for all IaaS/PaaS add-ins, and can proactively recommend and even trial them well before any competitor. IBM, Oracle, SalesForce, SAP, Alibaba, etc could all win big -- imagine if IBM bought GitLab instead of RedHat to fix their data center strategy.
Source code hosting as a business isn’t new, it just needs to be executed well.
The CTO at this company was the first engineer. He was talented, and more passionate about engineering than management. He eventually stepped down to a similar role as they brought in a suit from the corporate world to replace him. That was around the time that I left.
Funnily enough, I always thought he was the most grounded person on the leadership team.
If GitLab were able to add something like GitHub Actions into their platform I would leave GH in a second.
[1] https://about.gitlab.com/devops-tools/github-vs-gitlab/ci-mi...
The phenomenon of Apple releasing a feature that supplants or obviates third-party software is so well known that being Sherlocked has become an accepted term used within the Mac and iOS developer community.
Who knows, maybe I’ll be wrong and their auto devops pipelines might actually get rid of kubernetes namespaces for branches that don’t exist! :0
And Gitlab doesn't.
Most importantly, this forces folks into asynchronous and written communication, which both makes my work less interrupt driven, and reduces reliance on institutional knowledge. I think we're yet to fully realize the benefits of this brave new world. And yes, I'm aware that some folks need water cooler conversations. I don't though.
Sid, if you're reading this, do please write a book on how you did it, so others could replicate your success in terms of geographic distribution. Knowing the legal / accounting / tax pitfalls, and how to avoid getting screwed when hiring abroad would be pretty invaluable to others.