Tips from GitHub, Vol 1: Customer Service is King

Scott Chacon
12 min readNov 8, 2017


Since I’ve been fortunate enough to go from a pretty successful valley startup to a new startup just getting off the ground, I tend to get asked pretty often what I learned at GitHub and what lessons we learned that we’re carrying over.

I figured since I’m thinking about it a lot that it might be valuable to make a little blog post series out of it. So here you go, I give you the first edition of The Tips of GitHub (branching pun intended) — Customer Service.

Customer Service and The Superfan

An incredible focus on customer service is one of the most important differentiating attitudes that GitHub had early on. It’s something that I feel most startups (and large companies) don’t think enough about — a fanatical devotion to helping the customer.

From the very, very first days of GitHub, the founders cared deeply about customer service.

We had this internal concept that I remember being repeated again and again, which was the idea of the superfan. That spending extra time and attention on an individual user or group of users, even if it was expensive and maybe didn’t justify how much they may spend on our service, was valuable in the long term in that it may create a superfan.

Superfans were people who absolutely loved GitHub. People who were so surprised that we went out of our way to help them or understand their needs, that they would tell everyone they knew how great we were.

We would routinely spend time and money on things that we knew would not immediately give us a monetary return, because we thought that it would make some users so happy with us that they would tell everyone they knew that we were awesome.

This is something that I think is often not in an ROI analysis of an event or marketing campaign — it’s a soft and unmeasurable benefit that is almost always ignored.

Ironically, some of the best cases were when we messed something up. It was almost better to have a problem happen and then respond to it above and beyond than to never have a problem at all. People are just so not used to a company caring about their issues that when one does quickly and decisively respond, it’s a revelation.

GitHub always tried to make it as easy as possible to report a problem and tried to respond as quickly as they could. This is a level of attention that I just don’t see often in startups (or even larger companies, honestly).

Why Is Customer Service Really Important?

I think this is a huge issue with a lot of companies today. So few companies seem to believe that customer service is really important. I’m honestly not sure why this is. Service is something that is so closely tied to loyalty and in this age of MRR and SaaS revenue streams one would imagine that loyalty is insanely important. Even so, most companies see it at the very bottom of the list of things they care about, which makes no sense.

I give you this exercise.

Go to every other tab that you have open in your browser right now and see how long it takes you to submit a suggestion or bug report. Just try to tell each site that you don’t appreciate the kerning of the font that they’re using. Or even better, say that you can’t click on some made up UI element or the site is showing up in German for you and you don’t know why — something basically unsolvable.

Now answer these questions:

  • Is the way to report the problem or ask for help where you thought it would be? Is there even a way to report it at all?
  • Did you scroll all the way to the bottom of the page, search the links in the footer, not find it, then search the menus at the top until finding something that could be the link?
  • Assuming you found a link, how many different fields did you have to fill out before being allowed to submit your question or issue?
  • Did they ask you for contact information even when you’re logged in and they obviously know how to get in touch with you?
  • Did they make you fill out a subject line or area of concern, instead of triaging the issue themselves?
  • Did they force you to research the issue in their knowledge base before bothering them with your stupid problem?
  • Do they answer you? Ever?
  • If they do respond, are they nice to you even though you asked an objectively stupid question?
Modern customer service is doing just fine.

I just tried this in the tabs I happen to have open right now while writing this post. Two had no discoverable help link at all. Three had only knowledge base links with no free form field I could discover with any amount of clicking (Google Calendar, United and LinkedIn). One had help in the third link I tried. One was in the fourth drop down menu I tried, then went to an endless knowledge base labyrinth.

Let’s look at a quick sampling.

Medium makes you type in your Medium username, even when you click on it from a logged in Medium account. Medium, I’m pretty sure you know my goddamn Medium username. It also has a scrolling dropdown menu of categories, even though it only has like 7 categories — only 2 of the 7 are beyond the fold, which is ridiculous.

Twitter is one of the worst I’ve seen in awhile. You have to go down a rabbit hole of knowledge base bullshit before they even show you a “Contact Us” link, whence they then subject you to a litany of insane questions and fields, the last of which on the link I tried was actually a “Signature” field where you are asked to “Please electronically sign this notice by typing your full name”. Are you fucking kidding me? I feel like that’s meant specifically to discourage people from sending feedback.

Basecamp was pretty good, giving me a bunch of fields, but pre-filling most of them with what it thought I might want. It still made me do a category dropdown though.

GitHub was, and I swear this was unplanned — it just happened to be in the the tabs I had open when I had this idea — among the best of the sites I tried for this experiment. You scroll to the bottom and click ‘Contact GitHub’ and type in a question. There is unfortunately a subject line requested but it’s not required. (GitHub, btw, I would recommend getting rid of this, it’s unnecessary).

How to Really Do Customer Service

Customer service should be one of the top priorities of your website and I’ll tell you why. Customer service is what people turn to when they can’t figure it out themselves. It’s the last fallback of people desperate to get something done on your website. It’s your fallback UI when everything else the customer has tried has failed them.

To me, this means that it should be as easy as possible to accomplish. It means that you’ve failed your customer — your top priority should be making this process as easy and frictionless as possible, because it indicates a total failure of something your customer wanted to do. This information is gold.

If your attitude is that you care so little about your customer’s frustrations and problems that you’ll make them triage their own shit by searching knowledge bases first so that they don’t bother you, or you’ll make them choose from a dropdown of categories because your people have more important things to do than determine who in your organization can best deal with the problem, then what are you even doing?

If a customer at some point thinks “I need help”, then it means your product has a problem. You should be going out of your way to make it as easy as possible for your customer to tell you “I have a problem with something”. Even if it’s answerable somewhere in your knowledge base, it should be really valuable to you to know that people are running into that problem regularly. It means you might need to change something to make it not be a question for people in the first place.

So, here are a couple of guidelines for your customer service solution. Go to your website and see how many of these are true.

It shouldn’t take more than 1 click to report a problem or idea

A single click should take you to a form you can fill out to describe the problem you’re having, from any and every page on your website. No exceptions. If that click is a mailto: link, that’s fine too.

There shouldn’t be more than one text area required to report something

No matter what that 1 click is, the resulting page should have a single text area to fill out that says “tell us what your problem is”. Free form, open question, no bullshit. In absolutely no circumstances should submitting that form result in a form error.

You should have

No matter who you are, you should have a that people can email for any reason whatsoever.

Every email you send should be reply-able

If you send any email from, there is a special circle of hell reserved just for you. If you don’t want people wasting your time by emailing you, then don’t you dare fucking email them.

Every email you send out should go directly to your customer service team if the person replies to it. Every single one.

Your customers shouldn’t need to choose the category of shit you fucked up

If they’re contacting help, it’s almost always something you did wrong, not something they did wrong. Asking them to make your job easier by helping you triage your problems by choosing a category from a drop-down list is a dick move. How about try to make sure they’re not frustrated in the first place, and then you won’t be put through the burden of triaging their problems.

Your customers shouldn’t need to choose a subject

I honestly don’t understand why anyone does this. Subject lines in emails are for people to scan and decide if they want to read the body or not.

This concept has no place in customer support. It makes the customer do a second pass of “what am I trying to report, succinctly” but why is that their job? If you’re not making your customer triage your problem for you with a stupid dropdown menu, then that means someone in your organization will have to do that, and in that case, it’s a few seconds more to just scan a paragraph than to read a subject (and then inevitably also scan a paragraph to make sure they get the full context) before assigning to another group.

There is almost no advantage to having a subject line for your team, and yet it seriously increases the friction involved in the customer submitting the report.

Don’t tell them to go elsewhere in your customer service chain

This is maybe the worst of things I’ve seen organizations do. WeWork is especially bad at this and has done it to me several times. If I email anyone in your organization, don’t tell me to email someone else. It’s not my job as your customer to know your stupid organizational structure.

Figure out a way for your employees to forward things to other people. Inform the customer for future reference if necessary for a faster response, but never say “say this same thing, but to this other person”. That’s your job. If they contacted the wrong person, it’s because your product or support structure is confusing. Spend some time figuring out why they contacted the wrong person and then fix that problem instead.

Customer Service Attitudes

So now that you know how to get feedback from your customers properly, how should you respond to them?

Have a Voice

One of the things I always loved about GitHub was that we spent a lot of time thinking about and teaching people what we called the GitHub Voice. We wrote out guidelines of what a GitHubber sounds like, what their attitude is, what they sound like when they reply and tried to make sure all external communication fell along those lines.

I forget all the guidelines, but it was about always being friendly, classy and kind. Don’t be mean, don’t be snide, don’t be robotic — be human. A GitHubber writing something to a customer should sound like Neil DeGrasse Tyson.

Whatever your voice is, whatever you want your company to be — write it down and communicate it to people. Even now, when a support request comes in where I want to say something snide because it seems ridiculous to me, I take a beat and ask myself “how would Neil respond?”. Develop a voice and try to make sure everyone knows what it is and can use it.

Most importantly, don’t be afraid to be human. You’re putting in the effort of having a real human being help and respond, don’t force them to sound like a robot. Add some humor or levity if you can, take the issue seriously but try not to sound like a soulless machine is responding. Don’t use buzzwords, don’t talk down, don’t ever say “thought leadership”.

Nothing is Stupid

At Chatterbug, since we use Intercom and responses are super easy to do, we get a good number of messages that make almost no sense. Sometimes we get people sending us screenshots of JS consoles and full debugging of what they think is happening, other times we simply get the word “Jello”.

No matter how ridiculous you may find something, try to give them the benefit of the doubt and see if you can find a way to be helpful. A lot of the time it won’t pay off — you’ll simply never get a response, but occasionally you will and people will be extra appreciative.

Creating superfans is about paying attention

You don’t need to be the fastest at replying, but you do need to reply. Even if it’s a “Thanks, but no thanks”, the idea that someone there read it and cared at all is a win.

People will also forgive a lot of stuff if they feel like they’re being paid attention to. There is little that is more frustrating than not being able to voice your problem or have someone listen to you. A technical problem directed to a knowledge base is a tale told by an idiot, full of sound and fury, signifying nothing.

If someone has a frustrating problem and there is no way for them to vent, they just keep that anger. If they vent and you respond, “you’re totally right, that sucks, we’ll see what we can do” then it goes a long way towards making them like you. If you actually then fix it and follow up, you might just have a customer for life.

Everyone should do customer service

Every single person in your organization should do customer service on a regular basis. We used to try to get as many GitHub employees to user meetups as possible, because people loved telling GitHubbers what they thought the product needed changing. They also tended to get more honest after a few beers. In vino veritas, I suppose, but in that vino’d veritas were invaluable seeds of empathy and understanding.

At GitHub at one point we had a rotating support position where developers would volunteer for a week of customer support duty and would take issues flagged as being highly technical during that week and work on them with the support team. This was called King/Queen of Developers and nearly everyone did it at some point. It was highly important to us that engineers and product people had a real understanding of what was really happening from the point of view of our customers. What the common problems were, the real frustrations.

Every single person in your company should do customer service or otherwise meet with real customers on a regular basis.

Intercom: A Great First Step

So now that you know what it takes from the customer’s perspective and from an internal attitude, if you want to implement a great customer service solution, what is the easiest way to go about doing it?

At GitHub, we built our own internal customer service application that we called Halp. Nowadays, there are a few different options for good out of the box customer service solutions and at Chatterbug we’re using Intercom. While I don’t like most of the auto-messaging options that are almost impossible to not abuse when they’re used, the concept of having a little icon in the bottom corner to click on any time you need help is amazing.

If you go through the list of things I mentioned, Intercom seamlessly solves all of them. Any time I’m on a website that has Intercom on it and I have an issue, I can always just click on it, type my problem and I nearly always get a response back quickly, often within the hour. I can go from experiencing an issue or problem to reporting it in a matter of seconds.

Customer Service Should Be King

No matter how you do it, no matter what your philosophy or reporting technology or company voice, you should treat customer service as one of your most important priorities from your very first day.

Your customers are human beings, stand out from the crowd of services by making your best effort at treating them as such.



Scott Chacon

Sometime entrepreneur, developer, writer, world traveler, father, cat rescuer, baby signer and gorilla tamer.