In 2007, I wanted a better way to collaborate on software so I cofounded GitHub. We launched in 2008.
In 2023, I wanted a better way to build games, soooo... I'm looking forward to sharing something new in 2024.
Just heard that Google is selling off Google Domains. And people ask me why we didn't sell GitHub to Google. Seriously? Not one high level person I spoke to during negotiations is still at Google today. Meanwhile, everyone on the Microsoft side still works there...
16 years ago, on a Friday night in Tom's apartment in the Mission, we created the GitHub Rails app and made the first commit to what would eventually become the `github/github` git repository.
It's true - I too was asked to be the interim OpenAI CEO, but unfortunately the email ended up in my spam folder. Instead I spent the weekend playing Super Mario RPG.
It was a gorgeous Sunday morning. Birds were chirping and squirrels were squirreling. Coffee in hand, I began upgrading GitHub's testing infrastructure. When I was done, I ran a quick test and... deleted the entire production database.
The main reason GitHub shows you the repo's files right away is because I was tired of stumbling upon cool sounding SourceForge or Google Code projects that turned out to be vaporware. Great looking "Project Overview" page, completely empty repo. Show me the code!
Jeff King of git/GitHub fame once ended an internal talk about his side project with:
"Did I save any time by automating this problem? No. But did I have fun writing this code? Yes. Pointless projects aren't pointless if you enjoy them."
I still think about this often.
GitHub's beta launched without Pull Requests, but we did have private messages, since we were a social network. So when we first added Pull Requests, they were just special DMs: "Please pull from my fork at this branch." They sure have come a long way.
@defunkt
You're 100% unsuspended now. I'm working with our Trust & Safety team to understand what went wrong with our automations and I'm incredibly sorry for the trouble. GitHub ❤️
@defunkt
!
Our new repo screen was a total accident! Early on I just threw some repetitive commands in a <pre> to help me quickly create new repos, for testing. After a few weeks we were like... hmm... maybe everyone could use this? Almost 16 years later and it's still the same:
Ruby on Rails was a huge part of GitHub's early success. It made webdev easy, letting us focus on the hard problems of hosting git repos and figuring out collaborative workflows. I'm looking forward to watching the new Rails documentary, it looks great:
My biggest GitHub regret is never doing an April Fools where we switched every "there", "their", and "they're" in the UI to the wrong usage. Just a silent change, no blog post or anything.
It was deemed "chaotic evil" and "how could you?!" and "think of the children!". Still…
While obvious in retrospect, GitHub's original pricing model of unlimited free public repos and paid private repos took weeks to develop. We were so focused on building the product during the beta that we didn't spend a lot of time thinking about how to charge for it.
I created this graph with
@Caged
. In the 10 years since we launched it, I've hired people with full graphs and people with empty graphs. It doesn't tell you anything about a developer. It's just a fun way to browse activity, and a tool to motivate yourself to hack on OSS.
You're job hunting in 2023 with this kind of Github profile ?
Most newbies don't even understand how much work it'll take to actually succeed at this tech thin.
If your employees aren't working from home, that's your fault - not theirs. Some of GitHub's most impactful features were built by people working from home or remotely.
@Jac5Connor
VS Code, C#, TypeScript, Copilot, Xbox… all great in my book. Probably a lot more, too. I was a Linux kid in the 90s but have to give them credit.
On leap day in 2008 we incorporated Logical Awesome LLC, the original company behind GitHub. Our plan was to have a suite of products that worked well together, not just a code host. We also were actively working on a bug tracking product in 2008, codenamed "BugHub" (of course).
@rodjek
My main takeaways:
1. Don't let anything access production except production.
2. Save server upgrades for a weekday, when your team is working and can help you recover from mistakes.
3. Test deleting and restoring data regularly.
4. It can happen to you.
Vim was the first editor I fell in love with and one of the most inspiring open source projects that exists. While it's not my primary editor today, I've never stopped using it and still maintain my `.vimrc`. Thank you and RIP Bram Moolenaar
This was such an exciting time. My webdev friends had just started learning about XMLHttpRequest, then bam - GMail comes out with 1GB storage, amazing search, and the most snappy, interactive UI the web had ever seen. It changed everything.
On top of that, GitHub was profitable almost every month from launch until we raised money in 2012. The one month we weren't profitable, "Red October", was the month we hired
@kneath
and
@rtomayko
. It was a deliberate bet that paid off. Big time.
The first thing we did was pay ourselves, the founders, only a little bit of money. Each month, if GitHub's revenue grew enough, we'd raise that amount. Eventually we were paying ourselves full salaries, but it took over a year. In the meantime, we were living off savings.
The third thing we did was obsessively track our finances. We knew our ARR, MRR, DRR, HRR, down to the second. We tracked cancellations, refunds, signups, everything. Each morning I logged into our bank account and copied the balance into a spreadsheet we all shared.
An empty GitHub profile doesn’t matter if you have a resume, but open source is an amazing way to break into the industry. When I applied as a jr dev to
@GameSpot
, I had barely any real world experience, but I did have open source code. Coding on
@SourceForge
got me in the door.
I started programming at 12, but couldn't decide if I wanted to make movies or novels or games or music or code, so I went to college for English. When I found Ruby, I fell in love. Dropped out of school after 1 year and went full time. Moved to SF shortly after.
@defunkt
@GameSpot
@sourceforge
This is awesome! Do you have a CS background?
Also,
@dpaola2
started Agency of Learning, a program to help Jr devs which is a program that provides a “professional” like environment for jrs to work on Open Source.
The second thing was business deals. Early on we partnered with Engine Yard - we put their logo in our footer and provided free GitHub accounts to their customers, and in exchange they provided us with free hosting.
Zed is now open source!
Our mission is to revolutionize developer collaboration, building the world's best code editor in the process. After working together in Zed as a small team, it's time to scale up to transform Zed into a collaboration platform.
There were a lot of things that went wrong: Our tests should not have had access to production. Our production DB shouldn't have been wipeable. We should have been able to restore the DB faster. We should also have known our `Events` table would be a doozy...
Over 14,000 signups in 24 hours! Wow. Anyone who's worked on a game recently knows there must be a better way. Can't wait to show you what we've been building.
In 2007, I wanted a better way to collaborate on software so I cofounded GitHub. We launched in 2008.
In 2023, I wanted a better way to build games, soooo... I'm looking forward to sharing something new in 2024.
The founders regularly discussed finances: daily in our chat room, and also at our regular in-person meetings. We only hired people or made purchases when we could afford them. We were very careful to never overspend.
But the main thing that went wrong: our GitHub application assumed it was running in 'production' mode unless told otherwise. When I ran my test, I forgot to set the 'test' environment mode, so a connection was established to the production database, which was promptly deleted.
The fourth thing we did was reinvest in the business. When we made profit, it didn't go into our pockets. We used it to make t-shirts, fly to conferences, create marketing materials, etc. All the extra money we made went right back into growing GitHub.
When we outgrew Engine Yard, we made a similar deal with Rackspace. For years GitHub had "Powered by the Dedicated Servers and Cloud Computy of Rackspace Hosting" in our footer.
The most important thing we did, though, was pour ourselves into the product. There is no better marketing avenue than someone who loves your product and wants to use it with other people. We're all inundated with ads all day, so a recommendation from a friend is golden.
Fun fact: I was the first paying user of GitHub. Never expect software to work, always test it to be sure. As soon as we launched, I signed up for the $7 plan to make sure it did actually work. The entire time I was at GitHub, I paid for my account. It always felt fair to me.
@DrCarlosToscano
Anyone with prior programming experience should be able to jump in and get started right away! We'll share specifics in early 2024, but one of our goals is to make it widely accessible to new and seasoned programmers alike.
Originally the repo was `defunkt/github` because our vision for GitHub revolved around people, not companies or organizations. We wanted to help developers participate in git's "everyone has their own repo" workflow without having to setup their own server.
Former Zynga COO Matthew Bromberg is the new CEO of Unity
The new chief exec will net an annual base salary of $850,000, a litany of stock awards, and sign-on bonus worth $2 million
Only when I visited a few seconds later did I realize how bad things were. Nothing worked. As explained in the blog post, we always wiped our test DB before running tests. Turns out, people don't want their data wiped on a Sunday morning for no reason.
The fifth thing was to pursue multiple adjacent sources of revenue. Our merch store made money, we sold git training services, we had a job board with paid listings, and we even experimented with tech conferences in CodeConf & PyCodeConf.
Our solution was to make usernames the shared, global namespace, so that project names didn't have to be unique. People were already used to this concept on Twitter, Flickr, etc. It made sense.
I remember exactly where I was sitting, in my apartment next to Dolores Park. The tests ran quickly at that point. So when I started my test and it just hung, I immediately knew something was wrong - but I thought it was a connection issue. "Huh," I thought. "That's weird."
Everyone who was around helped out, but
@rodjek
really saved the day by quickly restoring the DB and punting on the `Events` table. We also immediately locked down production so it wouldn't happen again.
People sometimes ask, "Why did the original GitHub t-shirts say 'fork you'? Shouldn't they have said 'fork me'?" It's because we wanted to emphasize that "fork" was no longer a dirty word, no longer a bad thing. We wanted to flip a negative phrase on its head.
When I gave my 2017 Universe keynote, people thought I was nuts for saying the future of programming was talking to a computer in English and using all the world's code to improve your own code.
Six years later and here we are.
The first program I ever wrote was a text-based game in QBasic. I moved to California to do webdev for
@GameSpot
. Today I launched my developer-friendly indie games publisher, Null:
An early git hosting site, (still up!), had a "fork" button that let you make a copy of any repo. At the time, fork was a dirty word - forking a software project usually meant something was going wrong. But not on .
There are many ways to design a product, but this in particular is a great example of why "being your own target customer" will always be my favorite. If it works for you, chances are it works for others, too.
“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?” — Brian Kernighan
As I said in this 2010 interview about being bootstrapped, profitable, and proud: "Worry about every dollar you spend before (and even after) you’re profitable."
@AtomEditor
While Atom is gone, its influence lives on. There's no Electron and no VSCode without Atom. I'm really proud of what that team accomplished with such limited resources.
And of course, if you want to learn more about a project its README is displayed right under its files. An extremely innovative invention that I 100% ripped off of
@lighttp
. The first time I saw a README under a directory, I knew we had to have that feature. So convenient.
I really disliked that. Having spent years on SourceForge, bouncing between language communities, I thought it was annoying that multiple software projects couldn't have the same name. Who cares if there's different "fluffy-bunny" projects in both Python and C?
The sixth thing was to try to reach as many customers as possible, and for us this meant catering to different environments to widen the pool. The first version of GitHub Enterprise launched in June 2009, only a year after GitHub launched:
We never really had any problems scaling Rails. I spent way more time optimizing SQL queries and adding caching layers than I did fighting with Rails or Ruby. The scaling problems we had back then would have occurred using any web technology.
Not only did it let different language communities coexist on the same platform, it worked perfectly with git's fork-based workflow. Inspired by , we added a "fork" button to GitHub and the rest is history.
A lot of the purpose behind GitHub Desktop was to make it so those recommendations could turn into active users a lot faster. We considered them an onramp into git and GitHub, a way to help ease people into this new way of working.
VSCode is wonderful, but it's not "newer" than Atom. It's based on Microsoft's web-based text editor that predates Atom. They had been working on it for years with an experienced team. When Electron came out, they brought it to the desktop in the form of VSCode.
I hear this a lot too. "git wouldn't have won without GitHub." I disagree. I was a VCS nerd who used hg and darcs long before I ever heard of git. git was just better.
GitHub didn't make git the winner - we bet on a winner, and we were right.
@defunkt
@SaraJChipps
@fat
@mdo
But anyway, agreed, Github is a major reason that didn’t happen. Obviously Linux is another, but I seriously doubt it would have become the mainstream VCS without Github (and to a lesser extent Bitbucket, which was unable to save Mercurial).
The only problem was that 's projects all lived in a shared, global namespace. So your fork of "cool-project" had to be something like "defunkts-cool-project". It also meant that there could only ever be one "cool-project" on the whole site.
I wonder how different the tech landscape would be today if we didn't lose
@ezmobius
. He introduced me to both nginx and Unicorn, and his work on Merb w/
@wycats
was so influential. Merb was also the first real project on GitHub, and his startup EY was our first hosting provider.
@AtomEditor
Oh, and
@NathanSobo
is still at it. He's using lessons he learned building Atom to create a faster, more collaborative editor. Check out Zed:
Do you think making games should be more fun and rewarding? Come help us make it happen.
We're hiring Full Stack Engineers, Graphics Engineers, Systems Engineers, and Product Marketing!
If you love games, you'll love what we're building.
Doesn't
@awesomekling
know it's impossible to build a web browser?! Apparently not. Amazing progress this month! The GPU speedups are super impressive, especially on that website at the end with the big CSS animation.
🔴 Ladybird browser update (November 2023)
Some highlights:
🔥 Huge speed-ups on JS benchmarks from JIT optimizations
🔥 Progress on GPU rendering, getting closer to feature parity with CPU
❤️ Small demo by my wife
@KatalinKult
…and more! 🤓🐞🌍
Later when we needed to switch our company from an LLC to a C Corp in 2010, we took the opportunity to move from Logical Awesome LLC to GitHub Inc. And while our original LLC may be defunct, its glorious website still lives on to this day:
He was right. From that point on, we didn't touch it. For years you could have unlimited collaborators on private repos on GitHub, despite what the paid plans said. Almost nobody abused the system, and we instead focused on bigger problems. Thanks
@tmornini
.
Everyone who gave us their email address on will only receive one email from us ever, when we launch. Then we'll delete your address. You'll have to follow me for now to learn about other updates.