Tour Dash · Built locally · 25 September 2026

The Shelf is in the app, on sample stock

Michael picked direction A from the marketplace report and asked for it applied locally. It is: a Marketplace page in the sidebar for agents and vendors, a photo grid inside the radius on the account, an item on the Desk with a Buy that holds the money until pickup, a thread with the money as cards in it, and a six-field Sell dialog. Nothing is saved yet and nothing is deployed. This page says what is there, what was checked, and what stands between it and going live.

Thursday, September 25, 2026On localhost:8080 and /demo onlyNot deployed

What is there

The Marketplace page at 1280 pixels: heading, a lede reading within 10 miles of Short Hills, an amber Sell something button, Browse, Selling 2 and Saved 3 pills, a search box and four selects, then a four-across grid of photo tiles with prices from Free to $900. One tile carries a grey Sale pending tag and three carry a filled heart.
The grid on the demo agent's account. Ten items from the other demo agents, all within five miles of Short Hills so the default radius keeps them.

Buying

An item opens on the Desk. Left: the category and state, the price as the biggest thing, the sentence that is the whole contract under it, then condition, pickup and listed. Right: the photo, the seller's own words, the seller card with the job count and the Verified check, and the thread.

The sofa on the Desk dialog: Furniture and Available on the top line, $120, the sentence Your wallet holds it until you mark it picked up, condition Like new, pickup Short Hills 1.4 mi, listed today, and a stack with an amber Buy for $120 over an outline Message Alicia. The right pane shows the sofa photo and the seller's description.
Before the money is held: the town, the distance, and the contract in one sentence.
The same dialog after Buy: the state reads Your money is held, pickup is now 12 Hobart Ave and a phone number is listed. The right pane shows the seller card for Alicia Moreno, Bluestone Group, 112 jobs on Tour Dash, Verified, then a thread with a Held card, a message from the buyer, and Alicia's reply.
After: the street and the phone appear, and the hold is a card in the thread.
The dialog in dark theme after Mark it picked up: the state reads Sold, the note reads Paid to Alicia when you marked it picked up, and the thread ends with a Done card reading Picked up, $120 released to Alicia.
Done. The stack empties, the thread closes with the release.
The demo Wallet page in dark theme with a new first line in the September ledger: Bought Grey linen sofa, three seats, Sep 25, From Alicia Moreno on the marketplace, minus $120.
The wallet, a click later. The sale is a ledger line like any job.

Selling

The Sell dialog is the six fields from the report. Photos are the left half and the first one is the tile; what is it; category; condition as three pills; price with "or mark it free"; pickup from a saved place, the home office or the brokerage, or somewhere else with a street typed in; and a note. Post it is the dialog's one amber, and the item lands under Selling.

Your own item opens on the same Desk with the sides swapped: no Buy, Pause it in the stack, Take it down on the floor, and the thread from whoever wrote. When more than one buyer has written, their names are pills over the thread.

The Sell something dialog: a photo drop zone on the left with a note that the first photo is the tile, and on the right the fields What is it, Category, Condition as New, Like new and Used pills, Price with a checkbox reading or mark it free, Pickup from a select showing Home office, 31 Parsonage Hill Rd, Short Hills, a textarea headed Anything a buyer should know, and an amber Post it button.
Six fields. Buyers see the town until their money is held.
The seller's view of the brass arc floor lamp on the Desk: Lighting and Your item, $60, the note Paid to your wallet when the buyer marks it picked up, the street address in the facts, a Pause it button, a thread with a question from Priya and a reply box, and Take it down as a text link on the floor.
Your own item: pause in the stack, take it down on the floor, Priya's question in the thread.
The Marketplace on a 390-pixel phone: the lede, a full-width amber Sell something, the three pills, the search and the four selects two across, and the grid two across with the sofa and the signs.
390 wide. Two tiles across, the filters two across, no sideways scroll.
An item on the phone: the facts at the top, the title and photo scrolling between, and a pinned footer with Message Tomas over an amber Buy for $45.
On a phone the Desk becomes one column and the stack is pinned above the thumb.

What was checked

What is deliberately not there

PieceStateWhy
Tables and photos in SupabaseNot writtenThe ask was local. The hook is the seam; the components do not know where the items come from.
The hold on the live walletIn memoryLive, a hold is a Stripe charge to the platform and a transfer on release, the same path a job uses. That is Edge Function work, and it needs the answer on whether Tour Dash takes a cut.
Notifications and email for a message or a holdNot wiredThe notifications table and its triggers exist; a thread table does not. Messages are the first thread feature in the app.
Reviews after a pickupCopy onlyThe Done card says both can leave a review. The review dialog is tied to a booking today.
Your own radius savedPage stateSame as Find opportunities: agents open at the preset, and the setting is not stored on the profile yet.

Still open for Michael

Where it is

Working tree of ~/tour-dash, uncommitted: src/pages/Marketplace.tsx, src/components/ShelfTile.tsx, ShelfItemDialog.tsx, SellItemDialog.tsx, src/hooks/useShelf.ts, src/lib/shelf.ts, shelf-sample.ts, nine photos under public/demo-media/shelf/, and one-line changes to the two route files and the sidebar. Open it at localhost:8080/demo/marketplace.