Metro’s original name was “JSAppServer” with a vision not too dissimilar from what Vite+ is today. When I started working on JavaScript bundling, it was called “React Native Packager” but the team working on it was no longer part of the React Native team.
It was odd when I heard the team talk about what they worked on in terms of another team: “React Native… Packager”. There was clearly an identity problem, especially as we looked at deploying this bundler for Instagram on the web.
I set up an internal poll at Facebook, promising swag for the new product to the participants. I asked people to come up with transport-related names and was pretty sure it would yield a new name.
That poll went extremely poorly. The top-voted answer with about two hundred votes was “Choo Choo McChooface” - instigated by somebody who was working on the team! There were about 50 options that all sucked, and I gave up on the poll completely until my colleague Tim and I had a 1:1 and he said: How about this option “Metro” with one vote?
It was the perfect name, but it turned out Microsoft had a trademark on Metro for user interfaces and our legal team at the time was extremely defensive. We had to settle on metro-bundler.
Still, the team got its own identity, its own repo, and was able to chart its own course (only to be disrupted by a terrible reorg two years later).
Down the road, I was pinged when somebody else had asked for approval to use the “Metro” name for their one-off business tool, and received it. I swooped in, said: “Sorry but I already asked for this a few years ago - can I have it” and finally, we could drop the “bundler”. Just “Metro”.