Back to Work

IS GITHUB UP?

2026

A GitHub status checker shaped like a slot machine.

Next.jsPostgresDrizzleDesign EngineeringInteraction
View Live Project
IS GITHUB UP?

Reads GitHub's official status feed and answers the only question anyone has during an outage. When GitHub has a major incident a shared round opens: everyone on the page collects the same pool of downtime, and when it recovers, everyone who was there can claim a numbered ticket for that outage. There is no way to get one afterwards.

Every status page answers the same question in the same way, and none of them is any fun to be on. You go there because something is broken, you read that something is broken, and you leave. The information is correct and the minute is wasted.

So this one answers the question with a slot machine. It reads GitHub's official status feed, the reels land on the real answer, and nobody has to interpret an incident title. The machine is how the data gets read.

The part that makes it a product

When GitHub declares a major incident, a shared round opens. Everyone on the page at that moment collects from the same pool of downtime, and the pool is the outage: it grows for exactly as long as GitHub is broken. When the incident resolves, everyone who was present can claim one numbered ticket for that outage.

There is no way to get one afterwards, and that is the point. A collectible that can be bought later is inventory; a collectible that required you to be there is a record of where you were.

Why the ticket is a component and not an image

The foil above is the product, and a screenshot cannot carry it. Pointer position and device orientation are different signals, so both are normalised to the same pair before anything reads them, which means the card behaves the same in your hand as under a mouse. The laminate then follows the card at a lower stiffness than the tilt does, so the surface arrives slightly late. That lag is the difference between a gradient tracking a cursor and something that reads as material.

The patterns are coins, slot pips and a commit graph rather than the usual stars and glitter. A field of sparkles would belong to any card at all.

The commit graph is there for a legal reason as well as a design one. GitHub's logo policy forbids modifying the mark, combining it with other design elements, and using it on a product you are building, and the Octocat is registered with the US Copyright Office on top of that. A commit graph says the same thing, is generic, and belongs to nobody.

Details that only matter if you look

  • The barcode is derived from the outage and the serial, so the same ticket has the same bars on every render and every device. A random one would change under the scanner, which would make the ticket a record of nothing.
  • The back is the fine print. Which outage, how long, which seat: the things that matter to one holder and are noise to everyone else.
  • An unclaimed ticket can take a free-text name. A claimed one cannot, because it already carries a verified GitHub handle, and letting that be overtyped would make a verified ticket and an unverified one look identical.

A status checker is trivial software. The constraint that made it interesting is that the fun has to survive the fact that the underlying event is somebody's bad day, which is why the machine never celebrates the outage. It counts it and hands you a receipt.

Tech Stack

Next.jsTypeScriptPostgreSQLDrizzle ORMbetter-authGitHub OAuthCanvasCSS custom properties
View Live Project

Cookie Settings

We use cookies for analytics and to improve our website. Privacy policy