Master Plan · Q3 2026

From working prototype
to a real product.

Cardstock already works — you can scan, price, and track cards today. This is the plan to turn it into a product people sign up for: a web app, an iPhone app, and an Android app, with logins and data that's actually theirs — built in the right order, so we never have to tear anything down and start over.

Web · iPhone · Android User accounts & sync Built to handle a crowd One codebase, no rewrites
Ideated with Fable · executed by Opus · for Kalvin
The starting line

What works today — and what's missing

The product is real and usable right now. What's missing is everything that makes people trust it with their livelihood: an account, safe storage, and the plumbing to serve a crowd.

Works today
  • Scan a card — front & back, it fills in the details
  • Live market value attaches the moment you scan
  • Prices by grade, real recent sales, price trend charts
  • Portfolio — daily value, profit, and sell signals
  • Market tab — the week's biggest movers
  • The one rule

    Build forward, never backward

    Your friend said it best: "I can use this today — but if I really start using it, where's my data stored, and is it reliable?" That question sets the whole order. We lock things down, make data safe, make it scale, then wrap it into apps — each step building on a finished one below it.

    Why order matters more than speed

    The apps are just a shell around the web app. If we built the apps first, or invited a crowd before the price cache existed, we'd be ripping things out and redoing them the moment they got real use. Every phase below is finished and solid before the next one leans on it. That's how a two-tester prototype becomes a product without a single rewrite.

    The plan

    Four phases to launch

    Each one has a plain finish line — "done when." We don't move on until it's true.

    Phase 0 · a few days

    Lock the doors

    Right now the back door is open — anyone who finds our web address could run up the card-pricing bill or the AI-scan bill. This is a quick, quiet fix and it comes first because it's a live risk, not a someday one.

    Done when only our app can talk to our server, with sensible limits — no more open door.
    Phase 1 · the big unblock

    Accounts & safe storage

    Sign in once. Your inventory lives on your phone (fast, works with no signal at a show) and is continuously backed up to the cloud. New phone? Sign in and it's all there. This is exactly your friend's worry, answered.

    Done when he signs in on two devices and sees one inventory — and a wiped phone restores everything.
    Phase 2 · scale-proof

    Our own price cache

    Stop sending every user to the pricing company for every card. We keep our own stocked copy and refresh it smartly, so 100 users — or 100,000 — cost about the same. This is the "critical mass" insurance.

    Done when a simulated crowd all pricing at once causes zero slowdowns and zero errors.
    Phase 3 · the stores

    iPhone & Android apps

    Wrap the finished web app in a native shell (one tool, both stores) — real app icons, the phone's camera, and an App Store / Play Store listing. No rewrite: it's the same app you already have, in a nicer package.

    Done when the same login & inventory works on web, iPhone, and Android.
    Phase 4 · launch

    Polish & go live

    The finishing touches a public launch needs: a privacy policy, a support channel, deciding how it's paid for, and one thorough test across all three platforms on real devices. Then it's out.

    Done when a full run — scan → value → portfolio → sell → market — is flawless on web, iPhone, and Android.
    The scale problem, explained plainly

    Why a crowd won't break it

    This is the part you were most worried about — catching buzz, users signing up, then hitting a wall where we can't serve everyone. Here's the whole thing as a corner store.

    The warehouse and the corner store

    Our pricing partner (Card Hedge) is the warehouse. Our cache is the corner store we build.

    The warehouse

    Has every card's price — but only lets us pick up ~100 items a minute. Today every user drives there themselves for every card. On a busy day, everyone's stuck in line.

    Our corner store

    Stocks every price anyone's ever asked for. Users shop here — instant, and it costs us almost nothing. Almost no one needs the warehouse anymore.

    The daily restock

    Once a day the warehouse sends a "here's what changed" list. We only re-buy the prices that actually moved — not the whole catalog. Our shelves stay fresh for pennies.

    So picture your card-show nightmare: 100 people pricing cards at once. They're all shopping our shelves — instant. Only a brand-new card nobody's ever scanned sends one quick runner to the warehouse, and even then the card saves immediately and its price catches up a second later. The crowd never hits the wall, because the crowd never really touches the warehouse.

    Your questions, answered

    The things you asked about

    Is Supabase the right choice?
    Supabase is the "filing cabinet + front desk": it stores each user's account and inventory and handles secure logins. It's a great fit — a plain, portable database (no getting locked in) that's well-suited to profit/loss tracking, with logins and file storage built in. The $25/month tier covers up to 100,000 users. Other options exist (Firebase and friends), but they trade away portability or fit. This isn't a risky bet.
    Verdict — yes, it's a solid choice
    Should we cache every data point?
    Yes. Every price we ever fetch goes on our shelves with a "best before" date based on how fast it changes. Storage is cheap — $25/month is plenty — so keeping it all is a no-brainer, and it quietly becomes our own price-history dataset (an asset that's ours, even if the pricing partner ever changes). The table below is the turnover system.
    How do we keep testing easily?
    The web link never goes away — it is the product, not a throwaway. The iPhone/Android apps are just a shell around that same web app. So sharing a link with your friend stays the easy way to test, forever. And after launch, we can push updates straight to installed apps without waiting on Apple's review each time.
    What breaks first at scale?
    Honestly: the morning everyone's phone re-prices their whole collection at once, and busy card shows. Both are the same problem — too many trips to the warehouse. The corner-store + daily-restock design makes both cost the same whether you have 100 users or 100,000. That's the wall, and this is how we make sure we never hit it.
    Whose photo do we show — yours, or the pricing partner's?
    Yours — always. When you scan a card, the photo you take is that card's picture, and it's kept for good. Card Hedge can hand us catalog images too, but we deliberately don't use them for your cards: a mismatched catalog entry could show the wrong card's photo. Your own shot is always the exact card in your hand. Photos never change, so we store it once and never touch it again — no refresh, no extra data calls. Don't like a shot? Edit the card and retake it.
    Decision — your photos only
    What we storeHow often it changesWe keep it
    A card's price (by grade)Roughly dailyRefreshed daily
    Recent sales & trend chartsSlowly, day to dayKept ~days
    The card's identity (name, set, number)Basically neverKept long-term
    Your photo of the cardNever — it's the one you tookYours, kept forever
    Price history (the archive)Only growsKept forever — it's ours
    Order of operations

    The path, in order

    Each rung stands on the finished one below it. This is what "not developing backwards" actually looks like.

    0

    Lock the doors

    Close the open back door on our server. Quick, and it's a live risk today — so it goes first.

    1

    Accounts & safe storage

    The reliability your friend asked for. Also the foundation everything above it needs — apps have nowhere to store data without it.

    2

    The price cache

    Make it crowd-proof before we invite the crowd. Uses the accounts from step 1 to restock smartly.

    3

    iPhone & Android apps

    A shell over a finished, scale-proof web app. Last on purpose — it adds packaging, not new guts.

    4

    Polish & launch

    Privacy policy, support, how it's paid for, one thorough test — then out the door.

    What it costs to run

    Roughly $150 a month, all in

    And the cost per extra user is pennies — so at any sensible subscription price, the margins are healthy. The one line that grows with users is the pricing partner, which the corner-store design keeps flat.

    Card Hedge Prothe pricing data · 100/min, 50k/day
    $99/mo
    Supabase Proaccounts + database · up to 100k users
    $25/mo
    Cloudflarethe server + cache
    ~$5–30/mo
    App storesApple $99/yr · Google $25 once
    ~$10/mo
    All inbefore we've charged a single user
    ≈ $150/mo