snaps

Starting in 2022, I realized I had fallen out of love with sharing photos publicly. It wasn't any one thing, in particular, it wasn't some ideological stance against instagram or a desire to shield my family and friends from ai scrapers or something like that. I simply didn't feel like I was getting much out of sharing on those platforms and so i did what everyone else in my age cohort has done: I stopped posting and started sending photos to the group chat.

As gratifying as the group chat is, it does result in a fair amount of duplication, and it results in this situation you end up with multiple 'canonical' copies of your favorite photos that you inconsistently share with others but with no canonical thing to share. do you really want to send a full 30MP heif file to your friends? ios shared albums sort of solve this problem, but only if your friends use ios, and sending the photos via sms or imessage may count against their storage quota.

snaps began as a self-hosted backup of my instagram archive, but eventually became a replacement for it, starting first as an ingestion of the instagram backup contents.json into sqlite3 and eventually as a minimal sqlite-backed express.js webapp written in typescript, compiled with swc and with pages templated using pug.

among other modern luxuries, snaps serves opengraph preview content, images are resized and compressed using optimized formats, and mobile friendly ui with dark-mode css support. login is entirely handled via passkeys.

check out snaps' ad-hoc and chaotic development on github