Source code on GitHub

Technical Details

PicoPlayer uses Fixi, which is kinda like a tiny ~3KB version of HTMX. This keeps the website super simple, fast, and very small.

The PICO-8 player is separated from each game and cached, so it only downloads the ~20KB Pico 8 rom per game (with the exception of the rare multi-cart games). The games also get hotswapped into the same player, so you don't have to reload the page like other webgame sites. I've made a couple quality-of-life changes to the player, such as adding an audio normalizer and allowing mobile controls to work properly when playing on a horizontal phone, among other things.

Some games also used multiple cartridges that get downloaded from Lexaloffle as they're needed; these are all downloaded ahead of time and served from PicoPlayer, so the games don't make any external connections.

Making the website tiny was a big goal. All the game thumbnails are combined into one optimized WEBP sprite sheet. The rest of the website gets GZIP'd by GitHub pages. The PICO 8 games are minified (safely) using Shrinko8, which brings down the total rom size by ~20%. You can download the whole website with ALL 150+ included games in only around 4MB of mobile data!

PicoPlayer is also a Progressive Web App that can be installed. Running it the first time downloads everything it needs, allowing you to use the app and play everything 100% offline!

Full disclosure: This project is AI-assisted using Claude. The general architecture and website design were made by myself, with lots of extensive testing/reviewing. I also played and curated the list of games myself. Back Home