Google April Fools’ games
Google is famous for its April Fools’ pranks, but they’ve also historically blurred the line between pranks and features. For example, on April 1st 2019, Google introduced a temporary easter egg that transformed Google Calendar into a Space Invaders game. It was such a cool “joke” that nowadays, there’s a Chrome extension that offers a similar experience, turning your Google Calendar into a Breakout game. This extension also offers the option to actually delete items that your ball hit from your calendar at the end of a game.
On April Fools’ Day the same year as the original calendar game, Google also released a feature that allowed Google Maps users to play Snake on maps.
Personal Sidenote: The Google gag inspired an unreleased game I once made with an overworld that’s a gamified calendar, in which your character is trying to avoid an abusive partner by creating excuses not to be at home at the same time as their partner, but that’s a little dark for April Fools’.
Prank npm packages
In March 2016, a legit — if arguably trivial — eleven-line package was deleted from the npm registry after its creator decided to boycott npm. Turns out that deletion disrupted big companies whose code relied on the left-pad package and this prompted npm to change its policies on which packages can be deleted. I mention this because the humour of the npm packages released as jokes often revolves around poking fun at JavaScript developers’ overuse of dependencies that might not be needed.
Here is a 0kb npm package called vanilla-javascript and a page for the Vanilla JS “framework” that is always 0kb, no matter which features you add to the “bundle.” It lists all the JavaScript frameworks as “plugins.” Some of the dependent packages for vanilla-javascript are quite funny. I like false-js, which ensures true and false are defined properly. The library can be initialized with the settings disableAprilFoolsSideEffects, definitelyDisableAprilFoolsSideEffects, and strictDisableAprilFoolsSideEffectsCheck. If you read the source code, there is a comment saying, “Haha, this code is obfuscated, you’ll never figure out what happens on April Fools.”
There is also this useless library to get the current day. It seems plausible till you look carefully at the website and the description: “This package is ephemeral for April Fools’ Day and will be removed at some point.“ The testimonials from fictional time-traveling characters are also a bit of a giveaway, and you have to love that he updated it every day for months, “because… why not? 🤷♂️”
More “terrible npm packages” for April Fools’ are here.
aprilFools.css
There’s another category of dependencies that are functional but used for playing April Fools pranks. For instance, aprilFools.css by Wes Bos, which has a comment at the top saying:
/*
I assume no responsibility for angry co-workers or lost productivity
Put these CSS definitons into your co-workers Custom.css file.
They will be applied to every website they visit as well as their developer tools.
*/
It does things like use CSS transforms to turn the page upside down.
It strikes me that following the advice in the comments could be a slippery slope to a dark place of workplace bullying, if you were to try it on the wrong coworker, just because they left their computer unlocked. As Chris Coyier pointed out in his post on practical jokes in the browser:
“Fair warning on this stuff… you gotta be tasteful. Putting someone’s stapler in the jello is pretty hilarious unless it’s somehow a family heirloom, or it’s someone who’s been the target of a little too much office prankery to the point it isn’t funny anymore.”