Rate My Shots is a public ELO tournament for my photography. Two random photos are shown side by side, and you pick the one you prefer. Over time, the photos accumulate ratings based on how often they win matchups.
The goal is to replace the static star ratings on my personal site with crowd-sourced rankings. The top-rated photos here will eventually decide the order in which photos appear on bate-estacas.xyz.
Click a photo to vote for it, or use A / ← for the left photo and D / → for the right. The next pair loads immediately. Both photos are sized to have the same effective area on screen, regardless of aspect ratio, so neither side gets an unfair visual advantage. You only get one vote per pair.
Every vote counts immediately in the provisional ranking, which is what you see on the stats page. After I review them for abuse, votes also count in the verified ranking, which is what feeds my personal site.
All photos are pulled from the portfolio album of my Immich instance. They're proxied through this server so the Immich API key stays private.
Your IP address is stored alongside each vote so I can detect bad actors. That's the only personal data collected. No analytics, no third-party tracking, no cookies.
Built with Next.js, React, TypeScript, Tailwind CSS, HeroUI, SQLite, Drizzle ORM, and Bun. Self-hosted in a small Docker container. No third-party services. Code is open at gitea.bate-estacas.xyz/luis/rate-my-shots.
Made by luisdralves.