
RockStore is a marketplace and social network for rock and mineral collectors — a place to buy, sell, and show specimens with the scientific detail the hobby actually cares about: dimensions, weight, locality, condition, certification, and provenance. Faceted search, an interactive map of localities, collections, comments, and seller profiles round it into a community rather than a bare storefront.
It's a vibe-coded riff on the same problem behind the EarthWonders case study — how collectors discover one another and build enough trust to spend real money sight-unseen. Rebuilding it fast and unconstrained was a way to test ideas like map-based discovery, dominant-color tagging, and provenance-as-structured-data without the guardrails of a client engagement.
Role
Solo build — designed and vibe-coded end to end with AI pair-programming. Next.js 14 (App Router) on a Turbo monorepo, Prisma/Postgres, Algolia search, Mapbox, Stripe and PayPal.
What shipped
- Specimen catalog with rich metadata: dimensions, weight, origin, condition rating, and certification IDs.
- Faceted Algolia search and filtering by price, condition, locality, and species.
- Interactive Mapbox map with marker clustering for browsing by where specimens were found.
- Social layer: comments, likes, favorites, public and private collections, and seller profiles.
- Commerce stack scaffolded with Stripe and PayPal, plus structured provenance records for chain of custody.
Selected decisions
- Treated locality as a first-class, browsable dimension — map and facets both — because in this hobby where a piece came from drives much of its value.
- Auto-tagged dominant color from listing photos to power a visual discovery view.
- Modeled provenance as a structured record rather than a free-text note, giving listings the standing of a catalog entry.
- Built on a Turbo monorepo with a Storybook + Chromatic component library for visual-regression coverage.
Walkthrough
A closer look
Specimens as records, not just products
Each listing carries the data collectors judge by — dimensions, weight, locality, condition, certification, and provenance — so a specimen reads like a documented object with a history, not a generic SKU.
Discover by where it came from
Algolia drives instant faceted search while a clustered Mapbox map turns locality into a way to browse. Certain mines and regions map directly to rarity, so the geography is a primary axis, not a footnote.
A storefront that's also a community
Collections, comments, favorites, and seller profiles give collectors a way to show what they hold, recognize expertise, and build the reputation that makes a high-value sale possible.
A familiar problem, rebuilt fast
Working the same terrain as EarthWonders without client constraints let me prototype the riskier ideas — color-based discovery, map-first browsing, structured provenance — and see which ones actually earn their place.