The solution
Elevator.js began as a joke about a familiar awkward moment. Tim Holman's project page asked what happens when a reader scrolls a long page to the bottom - 'Wow, all this scrolling... It's going to take ages to get back to the top' - and observed that while 'back to top' buttons are functional, they skip straight past the moment. His answer: call back-to-top buttons elevators and make them behave like elevators.
The library keeps the promise small and technical. It is standalone - no jQuery - and handles only audio and scrolling: a developer points it at a main audio file and an end-audio file, and clicking the button starts elevator music, scrolls smoothly back to the top and plays a closing ding. Options cover a custom target element, fixed duration, vertical padding and callbacks, and the code is MIT-licensed on GitHub and on NPM, with demo audio licensed from Pond5.
The trick is that the project page doubles as the demo. The visitor scrolls down through copy that narrates the awkwardness, then clicks the elevator button and rides it back up - the joke is experienced rather than described. When the page hit Hacker News on April 21, 2015, commenters said it made them chuckle, traded notes on the music and autoplay, and proposed additions such as skipping the 13th floor.
What it achieved
Treat the utility moment itself as the product: make returning to top an elevator ride that is both functional and fun
Why it worked
Function stays intact: it still scrolls to the top, and the library is a standalone drop-in, so the theater never trades away the utility it decorates.
The experience sells itself: a reader who clicks the elevator has the joke happen to them, which is why commenters said it made them chuckle and that they could not wait to use it.
Small MIT code and an NPM package lowered the cost of trying it, and leaving styling and audio to the integrator let each site make the ride its own.
The moment was universal: every long page has that boring climb back, so a fix that made it fun had an audience wherever it appeared.
What can be applied
When a routine action feels like dead time, add small theater: delight that keeps the function intact turns a chore into a moment people share
Aftermath
The April 21, 2015 Hacker News thread drew 438 points and 66 comments, most of them the point of the joke: people who had muted speakers discovered the music only after reading the thread, some suggested adding tracks or skipping the 13th floor, and one noted the tune could keep playing if the tab was left inactive. The project stayed a small open-source artifact - the page and repository were still live in September 2026 - and Elevator.js became a frequently cited example of adding delight to a utility interaction rather than a business.
FOLLOW THE EVIDENCE
The sources
- Elevator.js - Hacker News news.ycombinator.com
- Elevator.js tholman.com
- tholman/elevator.js - finally, a 'back to top' button that behaves like a real elevator github.com