{"repo":"rob0pup/r2-commerce","free":true,"listed":false,"github":"https://github.com/rob0pup/r2-commerce","clone":"git clone https://github.com/rob0pup/r2-commerce.git","description":"Semantic product search for commerce: find products by meaning, not keywords. A Medusa v2 module backed by pgvector + Gemini embeddings, with a Next.js storefront.","language":"TypeScript","stars":20,"topics":["ecommerce","embeddings","gemini","medusa-v2","medusajs","nextjs","pgvector","postgresql","semantic-search","typescript"],"license":"MIT","category":"ecommerce","readme_excerpt":"R² Commerce A complete headless commerce store — with search by meaning, not keywords. R² is a real, shoppable Medusa v2 store: browse a catalog, add to cart, check out, create an account, and see your order history. Its signature feature is semantic search — type what you actually want (\"warm layer for a freezing hike\", \"make good coffee at home\") and get the right products back, even when none of those words appear in the product. Search is backed by Postgres + pgvector and Gemini embeddings; the storefront is Next.js on top. Keyword search matches strings. This matches intent . \"Quiet focus in a loud office\" returns noise-cancelling headphones; \"keep my lunch cold all day\" returns the insulated bottle — by meaning, with a relevance cutoff so weak matches are dropped instead of padding the list. Live demo: shop.robinrahman.pro --- Table of contents - Why this exists - What's inside - How semantic search works - Architecture - Repository layout - Prerequisites - Quick start — the standalone engine - Full stack — Medusa backend + storefront - The search API - How auto-indexing works - Storefront & commerce flow - Emails & notifications - Payments - Analytics - Tech stack - Deployment - Limitations & roadmap - Credits --- Why this exists Most store search is keyword search: it only finds products whose text literally contains your words. Shoppers don't think in product titles — they describe a need. Semantic search closes that gap by comparing the meaning of the query to the m","default_branch":null,"files":null,"tree":[],"storefront":"/r/rob0pup","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/rob0pup/r2-commerce/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}