Made for independent card shops

What you get. On every plan.

POS. Online store on your own domain. JustTCG-driven catalog. Trade-ins with credit or cash payouts. Ten reports out of the box. Stripe Connect. Same stack on every plan, no upsell tiers.

Your customer database

Customers sign up on your domain. Order history, trade-in history, and credit balance live on your store, not on a marketplace login.

Your storefront URL

Auto-issued TLS on shop.yourshop.com. Stripe checkout renders inline; no third-party redirect, no co-branding.

Your margin

Funds settle to your own Stripe account. We take a small per-order app fee. Every plan includes every feature; no upsell tiers.

5+
Stripe products wired in
10
Reports out of the box
8
Integrations live day-one
0
Tiers of feature gating

Why store owners switch

Most card-shop software is locked into a marketplace, dated, or both. Here's what changes when you move.

Your domain, your customers

Customers buy from your store, not a marketplace listing that happens to be yours this week. The email, the credit balance, the trade-in history all live on your URL. When you want to bring a customer back, you have what you need to do it.

Software that doesn't slow your team down

Dark mode, keyboard shortcuts, fast page loads, and a POS that fits on a single screen. Built on Next.js 15 and React 19. If checkout is taking longer than it should because the register is loading, that's a fixable problem.

Reports, not CSV exports

Ten dashboards covering sales, customers, catalog, margin, trade-ins, ops, repricing, dead stock, market signal, and cohort lifecycle. They're mapped against a Johari grid so the gaps in what you track are visible too. Not files you have to open in a spreadsheet first.

An assistant that knows the catalog

Ask the Claude-powered assistant about prices by condition, set release dates, 7- and 30-day trends, reprint risk. You get answers in plain English with live price charts inline. Backed by JustTCG over MCP, which is the same data your storefront runs on.

Trade-ins that pay cash, not just store credit

Customers pick credit or cash at submit time. Standard ACH is free and arrives in 1 to 3 business days. Instant payout to a debit card runs about 1.5% and shows up in under 30 minutes; the fee is disclosed up front and deducted from the customer's payout, not yours. You set the rates by game and condition; the platform computes the offers and lists accepted cards as published inventory.

One stack instead of eight

Stripe Connect, Stripe Tax, Stripe Financial Connections, Shippo for outbound and inbound shipping, TCGPlayer sync, Cloudinary for images, Resend for transactional email, custom-domain TLS, Cloudflare DNS auto-apply. Already wired up. You don't pay nine vendors and you don't write the glue.

Every feature, by category

No tiered feature gating. Every store gets the full stack on every plan. Items tagged

New
shipped in the last quarter.

Storefront on your own domain

Branded online store, inline Stripe checkout, faceted search, customer accounts. All on your URL.

  • Custom domain with auto-TLS

    Run your storefront on shop.yourshop.com. Cloudflare merchants get one-click DNS auto-apply; everyone else copies a CNAME. TLS issues automatically once DNS resolves.

  • Inline Stripe checkout

    Stripe PaymentElement renders on your domain. No third-party iframe redirect. Apple Pay, Google Pay, and cards in the same flow with shipping address and Stripe Tax inline.

  • Per-store branding

    Pick an accent color and one of five design-system accent themes for your admin. Your Buy/Sell pills, hover states, and OG link previews pick it up. Pin which categories appear first on the storefront homepage.

  • Live faceted search

    Game and set filters generated from your actual catalog. Debounced live search with thumbnails, keyboard navigation, and skeleton-streamed first paint.

  • Customer accounts on your store

    Customers sign up, save shipping addresses, see past orders, trade-in submissions, and credit balance. Password reset by 6-digit email code. Your domain, not a marketplace login.

  • Watchlists across stores

    Customers track cards across the platform from one watchlist. Email confirmation step keeps it spam-free.

  • Cross-store discovery and platform search

    Opt into the directory and shoppers can switch between merchants from your storefront header. One platform-wide search reaches every participating store's inventory.

  • Sparkline + 30d trend KPI on every product card

    New

    Each storefront product card carries a tiny market-trend sparkline at the bottom plus a count-up animated 30-day price-change KPI with up/down arrow. Customers see at a glance whether a card has been climbing or cooling — no detail page click required.

  • Custom display font per merchant

    New

    Upload your own WOFF2 / WOFF / OTF / TTF (up to 2MB) in settings and it swaps in everywhere the platform display face is used — both your admin dashboard AND your public storefront. Magic-byte validated server-side; assets live on the platform Cloudinary account.

  • Platform-wide + per-merchant dark mode

    New

    Platform admin toggles a marketing-site default; each merchant overrides with Inherit / Light / Dark in their own settings. The .dark surface uses a 7-level tonal hierarchy (near-black canvas, off-white type) tuned for the design system. Brand accents work on both surfaces.

  • framer-motion product grid

    New

    Staggered fade-in on first paint and smooth layout reorder when shoppers change sort. Respects prefers-reduced-motion. Backed by skeleton loaders that mirror the real card layout exactly so the loading → loaded handoff is CLS-free.

Catalog and inventory

Live JustTCG catalog, one-click product creation, auto-repricing, low-stock and dead-stock visibility.

  • JustTCG one-click product creation

    Search the JustTCG database, pick the variant you carry, and you get a published product with full metadata, every variant, the current market price, and the card image. No manual entry.

  • TCGPlayer sync

    Two-way sync between TCGPlayer and your storefront for inventory and pricing. Edit on JustTCG and the storefront stays in sync. Toggleable per org.

  • Reprice rules

    Auto-reprice against market with floors, ceilings, and margin guards. Scope rules by game, set, condition, or rarity. The Repricing Radar report shows what changed and why.

  • Pinned categories

    Choose which categories show up first on the storefront homepage. Singles aisle, sealed wall, bestsellers, whatever order you want. Configurable per game.

  • Dead-stock and low-stock dashboards

    Which SKUs are aging out and which are about to stock out, with capital-tied-up estimates and markdown candidates. The information is on a dashboard instead of a spreadsheet you fill out on inventory day.

  • Search misses

    Every zero-result search is logged. You can see what customers are looking for that you don't carry. Closest thing to a free buying-signal feed there is.

  • Inline ±5% quick repricing

    New

    Every row of the products table carries up / down chips that nudge the price ±5% with a single click. Optimistic UI; the new price renders instantly, the DB write fires in the background.

  • Inline quantity editing

    New

    Click any quantity cell on the products table OR detail page to edit it directly. ±1 buttons + click-to-type input, with optimistic updates and an InventoryMovement audit row written under the hood.

  • Streaming card search

    First page renders instantly; subsequent pages append + re-sort as they arrive (up to 500 results). Works the same on every surface the card picker shows up — products, trade-ins, AI Explorer.

  • Daily market-price snapshots

    New

    Per-variant snapshot worker captures a price every UTC day for every published product, stretching price history beyond JustTCG's 180-day API window over time. Sparklines + charts union local + remote for the longest possible series.

Trade-ins and buylist

Customers build a trade-in cart from your live catalog. You accept per item. Credit or cash payouts.

  • Customer-built trade-in cart

    Live card search or bulk import from Manabox, Collectr, or PriceCharting CSVs. Estimated value per line, computed against your own per-game and per-condition rates.

  • Per-game and per-condition rates

    Set cash% and credit% per game, then override per-(game, condition) pair. You can pay 60% credit on Magic NM and 35% on MP without keeping a side spreadsheet.

  • Ship-in or QR-code drop-off

    Customer picks at accept time. Ship-in generates a prepaid Shippo label; drop-off shows a QR code that you scan at the counter to mark received. Both keep submission status in sync for the customer.

  • Auto-create inventory from accepts

    Accepted cards become published products at the credit you paid, which doubles as the cost basis for margin reports. One trade-in completion can yield several new SKUs live on the storefront.

  • Customer cash payouts (ACH or instant)

    New

    Customers can elect cash to their bank instead of store credit. Standard ACH is free and arrives in 1 to 3 business days. Instant payout to a debit card runs 1.5% with the fee passed transparently to the customer. Powered by Stripe Connect Transfer plus Stripe Express recipient accounts.

  • Trade-in cash budget top-ups

    New

    When your Stripe Connect balance is low, top up via ACH from your linked bank in one click. Pre-fills the deficit, settles in 3 to 5 business days, then transfers to your Connect balance automatically when the webhook fires.

  • Convert to credit fallback

    New

    If a cash payout can't go through because of insufficient balance, you get a one-click 'pay as credit instead' option in the same modal. Customer is paid now; no waiting on ACH.

  • Decline-reason templates

    Save common decline reasons as reusable templates and pick them from the modal. Keeps customer messaging consistent across reviewers and shifts.

  • Daily payout budget cap

    Set a daily cap on cash and credit payouts. New submissions can either pause or warn (your choice) when the day's budget is hit. Today's payout %'s on the KPI cards animate-count-up on every page load.

  • Auto-print barcode labels on accept

    New

    When you accept a trade-in, the platform restocks the items as published products AND automatically queues a barcode-label print for each new SKU. No second click to go print labels for the items you just took in.

Point of sale

Code128 barcode labels, scan-at-register, real-time inventory depletion, Stripe Tax inline.

  • Code128 barcode labels

    Print 1×0.5" thermal labels per product with the SKU encoded as Code128. Works with most common thermal printers without a driver dance.

  • Real-time inventory depletion

    Scan at the register and inventory drops on the storefront before the next page load. No reconciliation gap between in-store and online.

  • Cash drawer and cash shifts

    Open and close cash totals per shift with a printable shift report. Counted cash reconciled against system-recorded sales without an external ledger.

  • Stripe Tax inline

    Tax computed at the right rate per address on the same screen as the cart. No surprise add-ons after capture.

Reports and insights

Ten dashboards across the Johari grid: what you know, what you don't, and what you don't know you don't.

  • Sales Pulse

    Revenue, AOV, traffic-to-buyer, top products, channel mix, hour heatmap, conversion funnel, refund rate, repeat vs new, 7-day trend.

  • Customer Atlas

    New customer rate, geography, LTV, acquisition channel, email opt-in, repeat-visit gap, top buyers, cohort retention, segments, first-purchase basket.

  • Catalog Performance

    SKU velocity treemap, sell-through, stockouts, set-level perf, foil split, condition mix, new-listings curve, listing-to-sale latency, category contribution.

  • Margin and COGS

    Gross margin trend, COGS by source, Stripe and platform fee bleed, return impact, margin per category, top and bottom margin SKUs, profit waterfall.

  • Repricing Radar

    Price vs market scatter, stale-price aging, underpriced and overpriced alerts, daily change distribution, auto vs manual mix, margin loss estimate, top movers.

  • Dead Inventory

    Aging buckets, capital tied up, top dead SKUs, category dead share, last-sold histogram, markdown candidates, bundle suggestions, recovery scenarios.

  • Trade-In Pipeline

    Submissions per day, offer acceptance rate, average offer value, reviewer queue age, top games, approval funnel, decline-reason mix, recovered margin.

  • Ops and Fulfillment

    Orders awaiting pick, pick-to-ship time, carrier mix, late shipment rate, label cost trend, address failure rate, daily fulfilled units, backlog burn-down.

  • Market Signal

    Trending sets, price index drift, search interest spikes, reprint risk score, format meta shifts, sentiment delta, hot-card watchlist, pre-order volume.

  • Cohort Lifecycle

    Weekly cohort retention, revenue per cohort, reorder gap distribution, first-product affinity, cohort LTV curve, churn risk gauge, win-back response rate.

  • Forecast-aware price-history chart

    New

    Every product chart overlays a rolling average (7/14/30d window), a least-squares trend line, and a Holt-Winters forecast band projected forward for ¼ of the loaded data with 7-day weekly seasonality. A 50–95% confidence slider live-updates the band width. Same chart shows up on the AI Explorer item page.

AI tools

Claude assistant and a visual relationship explorer, both backed by the JustTCG catalog over MCP.

  • JustTCG Assistant

    AI

    Ask in plain English about prices by condition, set release dates, 7- and 30-day trends, reprint risk. Replies render as formatted Markdown with animated price-history charts pulled live over MCP. Lucide React icons replace emojis automatically for an on-brand look.

  • Email any assistant response to yourself

    New

    Per-message mail button on every assistant answer. Sends a clean inline-HTML email with the full response, inline SVG price charts, and an 'Open interactive view' deep-link back to the chat. Renders identically across Gmail, iOS Mail, Apple Mail, and modern Outlook.

  • AI Explorer with always-visible labels + filters

    AI

    Force-directed map of card relationships: reprints, name family, number mates, rarity peers, set neighbors, price tiers. Card-shaped nodes with TCGplayer art, always-visible name + halo-tinted price chip, click to focus, drag to reposition, and price-sort re-layout when you drop. Map-side filter sheet with price range + rarity chips, plus a collapsible source sidebar that gives the graph full canvas width.

  • Right-side flyout with external deep-links

    New

    Click any card node in the Explorer and a flyout slides in with image, price stats, full variants table, and curated external links per game — TCGplayer, Scryfall, EDHREC, YGOPRODeck, Bulbapedia, Limitless TCG, Dreamborn, OPTCGdb, DigimonCard.io. Every link is generated client-side from JustTCG fields with no extra round-trip.

  • Dedicated item page with rich card detail

    New

    From the flyout, jump to a full /explorer/item/{...} page with merged JustTCG + local-snapshot price history, variant switcher, all-variants table with 24h / 7d / 30d deltas, and per-game playability data. Public route AND org-scoped admin route both supported.

  • Claude-generated market analysis

    AI

    On the item page, Claude reads a price-history summary (current, deltas, trend slope, residual volatility, Holt-Winters forecast) and writes a headline, 3-5 sentence commentary, key bullets, and buy / sell timing stances. 12h cached so repeat views serve instantly.

  • Playability section per game

    AI

    Format legality (Standard / Modern / Commander / Pauper / etc. for Magic; banlist for Yu-Gi-Oh!; Standard / Expanded / Unlimited for Pokémon), full rules text from the authoritative DB, plus a Claude-generated evaluation of the card's competitive role, strengths, and weaknesses grounded in the actual oracle text.

  • PSA grading section

    New

    Population pyramid by PSA grade plus price-guide values when the platform PSA_API_TOKEN is configured, with a single-cert lookup form (paste a slab number, get title + grade + date graded). Graceful fallback to a PSA deep-search link when the token isn't set so the section never disappears.

  • Movers (public)

    Repurposed as a general card-price listing across all JustTCG games. Filter by game and set, toggle catalog (all / singles / sealed), sort by % vs $ change across 24h / 7d / 30d / 90d windows. Server-side paginated with skeleton loading + parallel upstream fetch so even 2,000-card pages render fast.

  • Public Appraise tool

    Anyone can paste a card list and get an instant valuation against current market. Doubles as a marketing surface that funnels new merchants and customers to the platform.

Integrations

Wired in from day one. Stripe, Shippo, TCGPlayer, Cloudinary, Cloudflare, Resend.

  • Stripe Connect (Standard)

    Funds settle to your own Stripe account, not the platform. We charge a small per-order app fee. Onboarding runs through Stripe-hosted OAuth; no API-key paste.

  • Stripe Tax

    Sales tax computed at the right rate per address before charge. Inline on POS, storefront cart, and Express checkout.

  • Stripe Financial Connections

    New

    Link your bank account once. The trade-in budget meter shows your available balance, and you can top up via ACH without leaving the app.

  • Shippo (outbound and inbound)

    Prepaid labels for both orders and inbound trade-in shipments. Multi-carrier support (USPS, UPS, FedEx) with a packing-slip PDF generated automatically.

  • TCGPlayer catalog sync

    Connect once and we sync your TCGPlayer inventory and pricing. Edit on JustTCG and changes propagate. Toggleable per org.

  • Cloudinary signed uploads

    Direct browser-to-Cloudinary uploads with on-the-fly transforms. Product images don't bottleneck through your origin server.

  • Resend transactional email

    Order confirmations, trade-in updates, password resets, watchlist alerts. Sent via Resend with React Email templates. From-address configurable per org.

  • Cloudflare DNS one-click

    Cloudflare merchants get one-click DNS auto-apply for custom domains. No copy-paste of TXT records at the registrar.

Team, security, and ops

Role-based access, full audit log, encrypted-at-rest credentials, rate limiting on every public endpoint.

  • Team management

    New

    Invite teammates by email and assign roles (owner / admin / manager / member). Change roles or remove members later. Last-owner guard at the API and UI level so an org can't strand itself.

  • Audit log

    Every destructive action (product wipes, role changes, payout method conversions, settings updates) logged with actor, IP, user agent, and changed fields. Searchable in the admin.

  • Encrypted-at-rest integration credentials

    Per-org integration secrets (API keys, OAuth tokens) encrypted with an org-specific key derived from the platform master key. Never written to disk in plaintext.

  • Rate limiting on public endpoints

    Every public route scoped and rate-limited by IP and tenant. Sensible defaults, clear 429 responses with Retry-After headers.

  • Sentry observability

    Errors and slow transactions captured automatically. Less time guessing why a customer's checkout failed.

Ready to move?

Sign up, point a domain, import your inventory, and ship your first online order the same day. No setup fees, no tiers, no sales call.

Have a question? Email us.