Share to Twitter

Case Study: How internal shortlinks save Stripe over 20,000 hours every week

The origin story of internal shortlinks for higher productivity at Stripe
Table of Content

There are hundreds of startups across the world that have changed the way we do business.

Stripe is one such company we look up to. We admire them not just for their product or sleek website, but also for their enviable culture of knowledge sharing and absolute transparency.

Some of their best practices lauded by the entire industry include complete email transparency, weekly all-hands meetings, Stripe Press, and company-wide hackathons, among others.

In this case study, we take a closer look at the basic hack that fostered this culture of openness, right at the start, i.e. internal shortlinks at Stripe.

What are internal shortlinks

They are intuitive shortcuts or simple human-readable words to replace long URLs. Many Silicon Valley companies such as Google, Linkedin, Twitter, Uber, and more also use them to internally name (and shorten) their links in order to make them easier to find, access, recall, and share. 

o/shortcuts-gif

For example, the company all-hands meeting can be accessed by typing in x/allhands instead of looking for and copy-pasting the entire Zoom URL. Likewise, the product roadmap can be found easily at x/roadmap. 

Internal shortlinks at Stripe — the origin story

At Stripe, internal shortlinks originated in 2012 when Alex MacCaw, an early Stripe employee and now Founder of Clearbit, built Go.
In his own words, 

“Most companies soon start to build up a fair number of internal URLs, and it can often be tricky remembering these all. This is especially difficult when somebody new joins the company. Go is a simple solution to this problem. Once installed you could point http://go/wiki, for example, to your company's internal wiki.” 

The earliest version of Go is now available as an open-source project in Github. 

How Stripe uses Go today

Using Go, Stripe employees started creating internal shortlinks for everyday workplace resources such as go/payroll to access their payslip, go/cal to open their calendars instantly, o/okr to track key metrics, among others.

In addition, each of their important Slack channels gets its own Go link. Active Slack channels such as Legal, IT, Finance, Sales Ops, have Go links added to the description. They are linked with forms in Jira, which immediately raises an internal ticket in the Jira Service Desk. For instance, anyone can use go/it/ask to create an IT help ticket for assistance.

Today, Stripe has integrated Go into everywhere Stripe employees work. 

Go links are connected to the employees’ SSO. Most of the important Confluence documents are linked to Go. The IT Spinup Onboarding can be accessed intuitively at go/it-spinup, for example.

Stripe also has an internal user guide to familiarize its employees with Go. It contains detailed sets of how-to’s, instructions, and best practices for creating, editing, naming, deleting, finding, and sharing Go links across their workspace. 

Go links became even simpler and more convenient at Stripe when they were used together with another one of Stripe’s famous internal tools — Stripe Home

Michael Schade, who built out engineering and operations teams at Stripe as employee #20 from 2012 to 2019 says: 

“Back in 2017/2018 we indexed the Go links into Home search, which helped a ton.”

Stripe Home and search — Simplifying Go using more internal tools

As the name suggests, Stripe Home is the internal home page of Stripe acting as a people directory and a communication platform.

There is a personal page for all Stripe employees, describing who they are, what they do, and how to get hold of them. It further categorizes all employees based on their teams and location. 

In essence, Home is “the source of truth for who Stripe employees are” and simultaneously a platform for enabling individuals to get to know one another, especially outside of their work.

As Stripe grew, there was a need to simplify searching through this ever expanding directory of people.

Enter Stripe Home search — enterprise search that retrieves results not just from the employee directory but from Stripe’s entire knowledge base. It scans resources such as documents, people, teams, and even API models, with live filters to narrow the corpus of information quickly. 

With Go links indexed into Home search, employees could find the right shortlinks to the information they needed, right at their fingertips.

If there is no Go link configured for a particular document, it automatically searches Stripe Home and looks for a query parameter. Users are also prompted to create a new Go link instead.

How Go links work at Stripe

1. Creating a Go link

Any employee in Stripe can create a go link by heading to go/  in the browser and filling in the form displayed.
The form requires the following inputs

  • Original (or long) URL: The URL of the page one wants the go link to map to
  • Short name: The simple shortcut or keyword one wants to replace the URL with
  • (Optional) description: A short explanation of what the link is all about. This is useful to help establish context (especially when the link is something that people may want to refer to in the future). This also shows up in Stripe Home search results, making it easier to find what Stripes need, when they need it.
2. Naming conventions for information-resources at Stripe

While naming a document that has a Go link attached, it is common for Stripes to add the respective Go link in brackets next to the title of the document.
The naming convention extends to other areas such as Slack channels, which contain Go links in their description. 

3. Adding URL parameters to a Go link

Parametric Go links let Stripes create Go links that accept an option. In other words, users can insert a (variable) value into a URL to target specific destinations, when the URL has a common domain but a different destination.

To do so, Stripes simply need to put a %s in the part of the URL that needs to be changed depending on the destination page.

For example, if a Stripe employee wishes to make go/cal/username, they can make a link for go/cal and put a %s where the username goes:

https://calendar.google.com/calendar/embed?mode=week&src=%s@stripe.com 

So, now go/cal/emma will direct to Emma’s Google Calendar and go/cal/steve to Steve’s. 

4. Editing a Go link

In order to keep Go links relevant and high-quality, it’s a common practice at Stripe to edit and update links as often as needed. 

This can range from editing links so as to give them clearer descriptions to updating the link destination or underlying document for an old link, for example. 

Editing is extremely important for two reasons:

  • First, to eliminate obsolete links that are no longer useful
  • Second, because a good description also functions as a search ranking signal and can contribute to relevant Go links surfacing more easily in Home search

Here’s how Stripes can edit a shortlink:

i. Visit go/
ii.  If the link is shown in the go/ UI, simply click the “Edit" button next to it.
iii. Otherwise:

a. Search for the Go link name in Home search (it should appear high in the results, but filter to just Go links if necessary). There will be a link on the result to bring one the edit page. 

OR

b. directly visit: https://go.corp.stripe.com/?edit=my/linkname and replace my/linkname with the Go link name.

5. Deactivating a Go link

If a Go link is no longer useful and does not need to be edited, Stripes are encouraged to deactivate it. 

Anyone can do that by following the instructions below:

Deactivating means:

i. The link won't redirect anymore
ii. The link won't show up in Home search anymore

However, Stripe still keeps the history of the link around, and anyone can re-activate the link at any time.

Further, if anyone tries to create a link with the same name as a deactivated link, they are shown the deactivated link's info and allowed to choose whether to continue. Even if the deactivated link is overwritten, the link’s history gets retained. 

One obvious question Stripes would probably ask themselves before deactivating a link is if it's okay to deactivate the link at all. Stripe solves this dilemma by tracking who created and updated the URL of each link, and showing that in the UI when available. With this, it becomes easier for everyone to see who last changed the link, and to reach out to that person to ask for more context.

6. Searching for a Go link in Stripe Home using directions

Lastly, as Michael Schade stated, Home search is immensely helpful for Stripes to find links they have created or edited. They can do this by using the following script — creator:me type: go_link or editor:me type: go _ link

Using Go links is an inherent part of the Stripe DNA. It is the default way of navigating the labyrinth of resources every company builds up as it grows. 4000+ Stripes make use of Go links every single day to save over 10,000 hours every week while looking for information and collaborating on tasks with their colleagues. 

Sounds impressive, doesn’t it? 

It did to us, as well.

The power of naming URLs for better link management

But, we wondered why should the power of naming URLs using simple shortcuts be restricted to big-tech companies with seemingly infinite engineering resources and capabilities? 

We built OSlash to democratize the ability to name links. OSlash lets teams of all sizes use simple, intuitive shortcuts in place of long URLS to simplify finding and sharing information. This helps create a single source of truth for everything that’s important within the workspace. 

OSlash offers everything an internal enterprise URL manager like Stripe’s does (and more). You can create, edit, and delete shortcuts; add URL parameters to links (variable shortcuts); organize links into neat folders (collections); or search across all your apps for the relevant shortcuts and documents (universal search). 

OSlash features 10x the utility of Go links to save you precious productive minutes every single workday.

The best part? Unlike internal URL managers, OSlash works in a managed cloud environment, offering a complete SaaS experience that does not require any significant investment of a company’s own engineering resources to set-up, finetune, and maintain the service. It meets the users right where they are — across browsers and devices.

Ready to integrate AI

into  your website, app or software?
Book a demo