$ open cat.mumu.party

Cat

A pixel-art tamagotchi: adopt a kitten, feed it, play with it and put it to bed. Time keeps passing even when the site is closed.

This cat is drawn live by the same code as the game: no images at all.

What you do

Adopt your cat

Pick a name and one of seven coats. For the first three days it's a kitten, a bit smaller. Everyone gets their own cat, saved in their browser.

Look after it

Four bars: hunger, mood, energy and litter box. Food, yarn, naps and cuddles, but not too many, or it gets grumpy.

Play with it

Two mini-games, Laser and Fish rain, earn little fish to spend on accessories: a cap, glasses, a crown…

It doesn't die, it runs off

Neglect it for many hours and the cat wanders away. Fill the bowl and it comes back: no guilt, just a bit of attention.

How it's built

PageHTML, CSS and JavaScript, no framework, no build step
Artpixel art generated in code: geometric shapes on a grid, no images
Timethe bars drop in real time, computed even while the site is closed
Savingin the player's browser (localStorage), no accounts
Offlineservice worker: works without a connection and installs to the phone's home screen
Soundgenerated by the browser, no audio files
HostingCloudflare Workers with security headers (CSP, HSTS)

In numbers

7coats
13cat poses
2mini-games
8accessories in the shop
0images or audio files

What I learned

Smoothness is in the details. The cat moved in whole pixels of a tiny canvas and stuttered on phones. Now whatever moves is drawn at a finer precision, while the background stays pixel art.

Measure instead of guessing. To tune the mini-games' difficulty I had a simulated player play hundreds of rounds before and after every change.

Updates have to actually arrive. With an app that works offline, the risk is people stuck on an old version: a version number, ?v= on every file and a service worker cache tied to the version solve it.

Try it

Adopt a kitten at cat.mumu.party (in Italian), best on a phone. Got an idea for a game, an accessory, or something that's off? Leave me a suggestion.

Open cat ↗ Published suggestions ↗

Questions? Write to lorenzo.mustone@gmail.com or use the site chat.