As far as sites go, it has more competence than I'm used to.
It's essentially a SolidStart SPA with virtualized scrolling and a few other tricks (even I don't know most of them!). Vector search is entirely client-side with transformers.js and CLIP. The first load is quite slow unfortunately, cause it has to download the index of photo id -> link (~7 mb last time i checked), and same for searches, as it has to download the vector index (~28mb) and embedding model the first time. Caching is pretty good though.
I was previously using [Lychee](https://lychee.electerious.com/), which worked well but wasn't really suited for this use case. So I scrapped it and started from first principles with Claude. This entire task only used up 50% of my 5-hour quota on the $20 plan!
Since the site itself is an SPA and images are static, using a VPS is overcomplicating things since I (well, Claude) am essentially just using Caddy as a glorified CDN. But I had free DigitalOcean credits since I'm a student, and where else can I host 40 gigabytes of photos for free?
All in all, this was definitely a very fun exploration of what someone who's technical[1] can do with Claude. The code is all open-source (but it's slop) at https://github.com/aadishv/catapp.
[1]: at least I'd like to consider myself technical!
aadishv•1h ago