RingRank is an AI-powered engagement ring discovery app. Instead of scrolling through thousands of listings across different jewelers, you're shown four rings at a time and pick the one you like best. Over time, the app learns your taste and surfaces rings you're more likely to love — then generates a personalized taste profile describing your style.
Each round shows a batch of four rings. Tap your favorite, and it goes head-to-head with your current champion — the ring that's won the most matchups. Champions build win streaks and sit at the top of your favorites. You can also skip batches, exclude products you're not interested in, and undo your last pick.
After enough selections the app generates an AI taste profile — a short writeup that describes your aesthetic preferences, interesting patterns in your choices, and what your picks reveal about your style. Profiles are shareable with custom OG previews for social media.
The frontend is React + TypeScript with Framer Motion for animations and TanStack Query for state management. The backend is FastAPI (Python) backed by PostgreSQL through SQLAlchemy, running in a Docker container with Nginx and Supervisord.
The ring database is built by scraping 9+ major retailers (Blue Nile, James Allen, Brilliant Earth, Ritani, and more) using Playwright for JavaScript-heavy pages. Raw scraped data is then enriched using an AI vision model that analyzes ring images to extract visual characteristics — shape, setting style, metal type, band details, stone arrangement — producing structured attributes that would be impossible to get from product listings alone.
Those enriched attributes feed directly into a custom recommendation engine built with content-based filtering. It maintains weighted preference vectors across categories (shape, setting, metal, style, band) and adjusts them with every selection and rejection. The engine also tracks skip behavior with recency decay, adaptive thresholds based on preference match quality, and re-show logic that brings back previously hidden rings when your preferences shift. The goal is to balance discovery with relevance — showing enough variety to learn your taste without wasting your time.
Taste profiles are generated by an LLM that receives your preference data and produces a natural-language description of your style, along with a compact summary for sharing.
Discover your ring style in minutes. Just sign in with Google to start.
Launch RingRank