Start here
Clear out a whole house fast, before a moving deadline, without it eating your week.
Facebook Marketplace plus a spreadsheet plus endless texts, juggled across apps.
Writing listings is tedious, buyers no-show, haggling is draining, and nothing's in one place.
The numbers at a glance
How to use this doc
The tabs follow the journey: Evidence (proof it's real), Experience (how it works, with the blueprint), Build Plan + Coding Guidelines (how to build it well), Distribution and Before Launch (getting it out safely). Hand to Your AI has the plan to paste into your coding tool. Continue lets you take this one file anywhere and pick up where you left off.
The evidence
The opportunity map
Where everyone's weak
In their own words
#1 to build · opportunity 15 Create an accurate listing in seconds. Hurts a lot, handled badly everywhere.
The experience
1 · We explored the core moment (Crazy 8)
2 · We combined the best into one
★ This is the most important part
That combined direction is the one experience that solves the biggest problem from the Evidence tab: the proven aha moment, the thing people will actually switch for. The blueprint below maps this flow end to end, because it is where ClearList earns its place. Everything else in this document exists to support it.
3 · The Experience Blueprint, buyer reserves an item
The build plan
The tech stack
What to build first
V1, build now
- Snap photos, AI writes & prices each listing
- Review and edit every field, mark an item FREE
- Publish a shareable sale page (city + payment note)
- Buyers reserve with an email code
- Inbox, and share your address only after you confirm
V2+, build later
- Queue (max 3) + the 48-hour hold timer
- Pickup scheduling (availability, time slots)
- Push notifications + the full email set
- Auto social cards + custom URL (paid)
- Paid tiers via Stripe
The story map
Build order, with checkpoints
Checkpoint: you log in with a code, and the try-before-signup demo works.
Checkpoint: one photo becomes an editable, saved listing.
Checkpoint: you manage several items and change their status.
Checkpoint: a shared link shows a real preview and a live page.
Checkpoint: a reservation flows end to end into the inbox.
Checkpoint: address sharing requires your explicit tap.
Data model, 5 collections
Coding guidelines
How to work with your AI
- Think first. Before non-trivial code, have it say what it'll build and ask about anything unclear. No guessing.
- Keep it simple. The simplest thing that solves the problem. No extra features, no "just in case" code.
- Change only what you asked. Don't let it rewrite unrelated code. If it spots something, it tells you, it doesn't do it.
- When it loops, stop and reset. If the AI goes in circles or breaks things, revert to the last working version, then give it the exact error and what you already tried.
How the code should be built
- One home per thing. The same logic lives in exactly one place (one place for prices, one for login).
- Call things the same name everywhere. If it's a "pickup," it's always a "pickup," in the code and on the screens.
- Self-contained features. Each feature is one tidy piece (the "microwave": lots inside, one simple front), not smeared across the app.
- Keep the layers apart. Screens, decisions, and where data is saved stay separate.
- Handle the sad path. Every failure shows a friendly message and a way out, never a blank screen.
- Leave a trail. Important actions log what happened, so the day it breaks, your AI finds it in minutes.
Safety basics (do these from day one)
- Secrets stay out of the code. API keys live in environment variables, never in a file you commit.
- Never trust what users type. Check and clean input before you use it.
- Commit small and often. Save your work in little steps so you can always roll back.
- Backups on. Make sure your database keeps automatic backups (most managed ones do).
Paste this into your project guide (CLAUDE.md or similar)
# House Rules for ClearList You're the engineer. I'm the product manager. Follow these on every change. ## How to work - Think first: before non-trivial code, say what you'll build and ask about anything unclear. - Keep it simple: the simplest thing that solves the problem. No extra features. - Change only what I asked: don't rewrite unrelated code. If you spot something, tell me. - If you get stuck or start looping: stop, tell me, and we revert to the last working version. ## How to write code - One home for each piece of logic (don't repeat yourself). - Same name everywhere: if it's a "pickup," it's always a "pickup." - Self-contained features: each feature in its own folder as one tidy piece. - Keep layers apart: screens vs. decisions vs. where data is saved. - Handle the sad path: every failure shows a friendly message and a way out. - Leave a trail: log important actions (what happened, worked or failed, any error). ## Safety - Secrets in environment variables, never in committed code. - Validate all user input before using it. - Commit small and often.
These are the architecture essentials (deep, navigable modules, a single source of truth, consistent names) in plain language. They're enough to start on solid ground. You do not need decision-record formalism or coverage gates on a first app.
Distribution & growth
Your first 10 users
The people in r/declutter ranting about the "death pile," and posters in the moving subreddits with a deadline.
r/declutter, the moving subreddits, and local "moving sale" Facebook groups, the exact place you mined for pain.
Be genuinely useful there for two weeks, then one honest "I built this because I had a pile too" post. Stand up a waitlist now.
The growth loop
Will the loop start? (the cold-start check)
ClearList is useful to one seller on day one, no network required, so the core has no cold-start trap. The future city directory does need liquidity, so hold it closed until about 50 sale pages exist in a city. Otherwise the first visitor lands on a near-empty page and never comes back.
Before launch
Handle now
- Secrets. API keys live in environment variables, never in committed code.
- Privacy. Show only city + state in public; the seller's address is shared only on explicit confirm.
- Backups. Make sure the database keeps automatic backups (most managed ones do).
- Accessibility. Usable by keyboard and screen reader. Far harder to bolt on later.
Before you launch
- Legal. A privacy policy and terms; a refund policy once you take money (14-day cooling-off for EU buyers).
- Payments early. Apply to Stripe before writing payment code; keep a backup (Shopify buy button).
- Error tracking. Know when it breaks at 3am before your users do.
Hand to your AI
# ClearList, build plan for your AI coding tool ## The problem People moving with a deadline need to clear out a whole house fast. Today they juggle Facebook Marketplace, a spreadsheet, and endless texts. Writing listings is tedious, buyers no-show, and nothing is in one place. ## The goal Photograph your stuff, the AI writes and prices the listings, buyers reserve and schedule pickup. One place, photo to pickup. ## Who it is for People in a move with a pile to sell and a deadline (the r/declutter and moving-subreddit crowd). ## V1 features (build now) - Snap photos, AI writes and prices each listing - Review and edit every field, mark an item FREE - Publish a shareable sale page (city + payment note) - Buyers reserve with an email code - Inbox; share address only after the seller confirms ## V2+ (later) - Queue (max 3) + the 48-hour hold timer - Pickup scheduling (availability, time slots) - Push notifications + the full email set - Auto social cards + custom URL (paid) - Paid tiers via Stripe ## Tech stack - Frontend: Next.js (App Router), TypeScript, Tailwind; PWA for sellers - AI: Gemini 3.0 (writes and prices listings) - Data: Firestore, Firebase Storage, Firebase Auth (email codes) - Money and messages: Stripe, SendGrid, FCM, Bannerbear - Hosting: Vercel; domain clearlist.me ## Data model (5 collections) - users: email, tier, location, custom_url, availability - items: status, title, price, dimensions, photos - reservations: item_ids, expires_at, queue_position, cancel_token - conversations: seller_id, buyer_email, unread_count - messages (subcollection): sender, content, read ## Build order (each ends with a checkpoint) 1. Sign in + try-before-signup 2. Snap to AI listing 3. Dashboard + manage 4. Publish + share 5. Buyers reserve 6. Coordinate pickup (then V2: queue/timer, scheduling, push, social cards, payments) ## House rules - Think first; keep it simple; change only what is asked; if you loop, stop and reset. - One home per piece of logic; same name everywhere; self-contained features; keep layers apart. - Handle the sad path; leave a trail (logging). - Secrets in environment variables; validate user input; commit small and often. - Every action goes through an API route, so an agent can do anything the UI can.
Continue anywhere
Pick up where you left off
A complete machine-readable snapshot of this session is embedded in this file. To resume: open a new vibe-check chat, attach this HTML file, and say "continue from this PRD." Your AI reads the snapshot and has every decision, every piece of evidence, and the full plan, no context lost.
Snapshot status: embedded