← Back to Software Engineering Projects
Ruby on RailsOpenAITailwindFull-Stack

Scour

Scour is an AI-powered furniture discovery platform (scour.design) with 660K+ listings from boutiques worldwide. I worked in a Ruby on Rails codebase with an HTML, CSS, JavaScript, and Tailwind frontend — shipping admin tooling, AI-assisted content, SEO-friendly URLs, and storefront reliability fixes.

Admin product page with OpenAI-powered Admin Notes panel

Admin & Product Notes

Built an Admin Notes panel on product detail pages in the Rails admin, so the team can capture operational context next to listing metadata — title, store, pricing, curator status, and feed health. Notes are powered by the OpenAI API, making it faster to draft and attach useful product notes without leaving the admin.

Store admin page for Pinch with Regenerate Bio action

Store Bios

Expanded store admin pages with editorial bios for boutique partners — short brand narratives that sit alongside shipping regions, curator status, and editor’s-pick flags. Added a Regenerate Bio action so the team can refresh store copy in one click instead of rewriting descriptions by hand (shown: Pinch).

Scour storefront product detail with searchable catalog of 667K+ items

Friendly URLs

Shipped SEO-friendly URLs on the customer-facing storefront so product pages resolve to readable, shareable paths instead of opaque IDs. That work sits behind the discovery experience shoppers see — category filters, a 660K+ item search, product detail, visit-store CTAs, and related products — and helps listings stay findable and linkable.

Users admin table with working pagination controls

Pagination Fix

Fixed broken pagination on admin list views so large tables page correctly through the full dataset. Shown on the Users index — email, status flags, and edit actions — with page controls that reliably move between result sets instead of stalling or skipping rows.

Get in touch

Contact Me

Have a project in mind, or just want to say hi? Fill this out and it'll land straight in my inbox.