
Fine-mineral collectors will spend thousands on a single specimen they have only seen in a photo. Before EarthWonders they did it over Instagram DMs and one-off dealer sites — negotiating in the comments, wiring the money, and trusting a stranger to ship the right piece. The opportunity was a real marketplace for them; the actual problem underneath it was trust.
Trust is hard to manufacture and hardest at the start. We launched with no inventory, no buyers, and no reputation, into a community of experts who know every dealer and every price and would see through any seeded supply immediately. What follows is the chain of decisions that earned it — a few of them unglamorous, and one that had me writing production code myself to get unstuck.
- Engagement
- 0→1 marketplace, founding team
- Role
- Principal Product Designer
- Scope
- Research, brand, design system, production UI
- Timeline
- Six months to MVP
Role
Principal Product Designer, 0→1. I led product design and strategy with the founding team, covering research, prototyping, the design system, and delivery with engineering. When iteration speed became the constraint, I took GitHub access and contributed production UI directly.
Dealers & collectors
0
Onboarded by the six-month MVP.
Specimens listed
0
Seeded from dealers' own public catalogs.
Months to MVP
0
Concept to a marketplace with real supply on both sides.
Steps to list
0
Down from one long abandoned form. Photography first.
Nobody joins an empty marketplace, so we filled it before we opened it
In a two-sided marketplace, buyers arrive for inventory and sellers arrive for buyers; at launch we had neither, and no reputation to borrow against. Seeding one side artificially wasn't viable, since collectors know the dealers and the going rates and would spot fabricated inventory immediately, so we grew real supply first. To make joining worthwhile, we built scrapers that mirrored dealers' public catalogs into our data model before onboarding, so a dealer's first encounter with the platform was their own storefront — hundreds of specimens already listed and priced — rather than an empty form.
That meant temporarily hosting inventory we hadn't been given explicit permission to host, which we accepted on a clear basis: a takedown takes minutes to honor, while waiting for opt-ins from people who couldn't yet see the platform would have cost months.

Fig. 01Discovery on day one: real specimens, real dealers, real prices — mirrored from public catalogs so the marketplace was worth walking into before a single seller had signed up.
One profile, not a buyer account and a seller account
Collectors and dealers do different jobs, so the first design followed the common pattern of separate buyer and seller accounts. Testing pushed back: many dealers also buy, many collectors also sell, and people wanted one place that held their active listings, their personal collection, and the pieces they had previously owned. In this community a collection is a form of identity and reputation, not just inventory, so we consolidated everything into a single profile closer to a portfolio than a seller dashboard.

Fig. 02Active listings, private collections, and previously owned pieces live under one identity — with points, species count, and localities standing in for a seller rating.
The form opens with photography, because that is what a buyer judges
The original listing form was a single long page spanning species, locality, dimensions, condition, provenance, and price, and dealers regularly abandoned it partway through. We rebuilt it as a five-step flow — media, details, provenance, publications, listing — with media first by design, since a specimen's photographs are a buyer's first basis for judgment and the clearest indication of how seriously a listing is meant to be taken.

Fig. 03Step two of five. Locality is picked on a map rather than typed, so the field that drives rarity and value arrives structured instead of as free text.
Every listing follows a defined photographic standard: a full view, a hand-scale reference, macro detail, and a 360-degree pass to show how the specimen takes light. To confirm the standard was achievable before requiring it of dealers, I photographed a dealer's inventory myself over two days, and those images became the reference used in onboarding and the style guide.












Give a listing the standing of an auction-catalog entry
Buying a physical object online comes down to the information a buyer can rely on. Provenance is built into each listing as a structured record — prior ownership, collection locality, and any exhibition or publication history — rather than a free-text note, which gives a listing the standing of an auction-catalog entry and the buyer a concrete basis for a significant purchase.

Fig. 04Species, size, dimensions, origin and SKU as structured product details — each one a link into the guides rather than a line of prose.
Collectors navigate by species, locality, formation, and rarity rather than by generic commerce categories, so the taxonomy was built from the community's own vocabulary.

Fig. 05Locality carries enough weight — certain mines and regions map directly to rarity and value — that we made it browsable on a map.
- 1Locality browsed as a map, because a mine is a place before it's a category.
- 2A map selection becomes an ordinary filter chip, removable like any other.
- 3Species, formation, and rarity in the community's own vocabulary.
- 4The grid narrows live as filters are set — no modal to commit to first.
The hardest surface in the product, and the reason I took commit access
Filters were the hardest part of the interface. A comprehensive filter modal tested poorly because minerals are visual and collectors expect the grid to respond as they narrow, not after they commit; a lighter modal had the same flaw.
The limiting factor was iteration speed more than the design, so I built the working pattern — a left rail with a live-updating grid — directly in code over a weekend.
It became what we shipped, and continuing to contribute production UI brought filter iteration down from months to days.
- Spec → design → queuemonths
- Prototype in production codedays
Drawn to the order of magnitude described above, not to instrumented telemetry.

Fig. 08What the responsiveness bought: discovery reads as a feed of new drops and collector activity rather than a static catalog behind a filter dialog.
Scraped listings carried no color information, and the form was already long enough without another required field. Because every listing had photographs, we tagged color automatically with image analysis at publish time, which added no work for sellers and enabled a color-based discovery view for buyers.

Fig. 09Colour sits in the rail as a first-class filter, derived from photographs sellers were already required to upload — no extra field on the form.
A specimen carries history and opinion, so the listing became social
Specimens carry history and opinion, so the listing page became social — comments, collector notes, a visible ownership chain, and context on comparable sales — and collectors got dedicated profiles, an activity feed, and notifications that surface fresh finds, which gave the community a way to recognize expertise and a reason to return. The reference guides followed the same approach: an initial call for contributions went unanswered, so we generated several hundred species and locality pages and shipped editing tools, after which collectors began correcting and extending them and now maintain them.



Activity, notifications, and the community-maintained species and locality guides.
Ownership doesn't end at purchase, so the collection manager lets collectors organize what they hold and track its estimated value over time, drawing on the same structured data that powers their public profile.

Fig. 10Purchase price, current estimated value, and the trend between them — the same records that make up a public collection.
The quieter decisions: a brand, a component library, and a familiar checkout
Several quieter decisions supported the same goal: a complete brand identity to signal that the platform was built with care, a Storybook component library established before feature work scaled to keep the interface consistent as the team grew, and a checkout that led with PayPal — familiar protection for a first purchase — before adding a saved-card wallet to speed repeat orders.


Fig. 06The mark was worked out as a small system — primary lockup, monogram, and reversed treatments — so the brand stays recognizable on light, on dark, and in the tight spaces a marketplace UI demands.

Fig. 07A deliberate palette sat underneath it as tokens, giving the component library a single source of color so a dense, image-heavy interface stayed coherent screen to screen.
Taken together, the project was less about any single feature than about making a high-value purchase of something you can't physically inspect feel safe — through supply that was real, listings that were verifiable, profiles that were durable, and a community with reason to stay.
What shipped
Shipped the MVP in six months: 84 dealers and collectors onboarded, 83,000+ specimens listed.
Seeded the marketplace by mirroring dealers' public catalogs, so sellers arrived to a storefront that was already populated.
Unified buyer and seller into a single profile holding listings, collection, and ownership history.
Added provenance — prior ownership, locality, and publication history — which the category had lacked.
Brought filter iteration down from months to days by prototyping in code and shipping directly.
Seeded the species and locality guides with AI; the community now maintains them.
Selected decisions
- 01
Grew supply dealers-first, using scrapers to mirror public inventory before onboarding.
- 02
Chose one unified profile over the conventional separate buyer and seller accounts.
- 03
Rebuilt the listing form as a five-step flow that opens with photography.
- 04
Set photography standards for every listing and produced the reference set firsthand.
- 05
Designed provenance as a structured record rather than a free-text field.
- 06
Auto-tagged specimen color from listing photos to power a visual discovery view.
- 07
Stood up a Storybook component library before scaling feature work.