What's shipped.
Active development. Frequent releases. Currently on v0.9.6-beta. v1.0 ships when paid plans go live.
TopLoader is running in a live production shop and available for beta access. v1.0 is reserved for when paid plans go live. Expect frequent updates.
Deal editor section totals, keyboard navigation improvements, Sentry error monitoring, DB performance optimization, and a batch of stability fixes.
- [NEW]Section totals in the deal editor: market, trade, and cash totals shown at the bottom of the Items section. Custom Items shows market and offer totals. Desktop shows a table footer row; mobile shows a compact pill bar.
- [NEW]Sentry error monitoring integrated — production errors are now captured and alerted automatically.
- [IMPR]Pressing Enter on the quantity field now moves focus to the next item's market value, or adds a new item if at the end of the list.
- [IMPR]Card name inputs now auto-capitalize on mobile keyboards.
- [IMPR]Dashboard loads are meaningfully faster — count queries now run at the database level instead of in application code.
- [FIX]Authentication checks optimized across all database queries — faster page loads across the app.
- [FIX]Onboarding checklist no longer flashes briefly on the dashboard before data finishes loading.
- [FIX]Fixed: users with multiple shops no longer get stuck on the shop-select screen at load.
Security hardening, cross-tenant isolation, and inventory inline editing.
- [IMPR]Data isolation hardened across all API routes — your shop's data is strictly separated from other shops at every layer.
- [FIX]Security patch: role checks are now strictly scoped per shop, blocking a potential privilege escalation path for users with accounts at multiple shops.
- [NEW]Market value is now inline-editable in the inventory table — click any value to edit in place without opening a modal.
- [IMPR]Nav active state highlighting corrected across all routes. Org-select now shows a loading indicator while Clerk resolves memberships.
- [FIX]Multiple layout bugs causing horizontal scroll on desktop and content clipping on mobile fixed in a single pass.
Vendor Mode — a standalone product for individual vendors operating at card shows.
- [NEW]Vendor Mode launched: a simplified dashboard experience for individual vendors at card shows — separate from full shop accounts.
- [NEW]Vendor Mode toggle in the admin shop list, with a VM badge on vendor accounts to distinguish them from standard shops.
- [NEW]Vendor Mode landing page and beta code path for early access sign-ups.
- [IMPR]Show inventory items now visible to vendors through their Vendor Mode view.
Show Mode — a full card show management system built into the dashboard.
- [NEW]Show Mode launched: manage an entire card show from one screen — buying, selling, and trading all in one structured log.
- [NEW]Structured log sheet with distinct Buy, Sale, and Trade entry types, each with the right fields for that transaction type.
- [NEW]Buy-to-inventory flow: items purchased at a show automatically create inventory entries with cost basis tracked.
- [NEW]Line-item buy entries with per-item market value and a live target hint (what you need to sell for to hit your target margin).
- [NEW]Multi-select sale picker: select multiple inventory items and mark them sold in one action, directly from show inventory.
- [NEW]Vendor pricing settings: set a target margin percentage and automatically see the minimum sell price per item.
- [NEW]Per-item % estimation helper with quick-select chips (60%, 70%, 80%, 90%) and an actual market value override for precise offers.
- [NEW]In-show inventory status: items can be marked as currently at a show, separate from standard Available/Sold/Returned.
- [IMPR]Sale and trade pickers filter to show-linked inventory only — no noise from items not brought to the show.
- [FIX]Deleting a sale transaction automatically reverts the linked inventory item back to in-stock.
- [IMPR]Cost basis and market value are both visible on show inventory, so margin is always clear.
Traded-For field, payment display improvements, and SlabTrack mobile polish.
- [NEW]Traded-For field on trade deals: record exactly what was given in exchange for trade credit — surfaced in the finalize modal before committing.
- [IMPR]Trade deals now hide cash payment options entirely — the deal form stays focused for pure trade workflows.
- [IMPR]Payment method tracking improved across all deal states and the receipt display.
- [IMPR]SlabTrack mobile: fixed iOS input zoom on focus, improved column order for one-handed use, and better sort control placement.
- [FIX]Attach-deal picker now shows recent deals and correctly searches by creator name when looking up deals to link to a customer.
Inventory traceability, global customer search, Square export improvements, and a UI polish pass.
- [NEW]Inventory source linking: each inventory item now shows which deal and customer it came from. Clickable links to the originating deal and customer profile.
- [NEW]Global search now covers customers — search by name or phone number and jump directly to their profile.
- [IMPR]Square export now prompts for a location name and embeds it in the export header, supporting multi-location shops.
- [IMPR]Loading skeletons added across inventory, reports, and customer pages — no more blank content flashes.
- [IMPR]Error states and empty states now show consistent icons and messaging throughout the app.
- [IMPR]Reports page: top sellers section and an inventory health summary (items in stock, total value held) added.
- [IMPR]Returning seller chip shown in the deal editor when the linked customer has prior deals on record.
Customer profiles — full customer management with deal history, stats, search, and email integration.
- [NEW]Customer profiles: store name, contact info, email, notes, and tags. Editable from the customer detail page.
- [NEW]Customer detail page: all deals and SlabTrack submission cards linked to a customer in one view.
- [NEW]Customer stats bar: total deal count, card count, and value totals shown on each profile.
- [NEW]Customer search with typeahead — available in the deal editor and the customer list page.
- [IMPR]CustomerLinkControl is now always editable — attach a customer to finalized deals after the fact without reopening the deal.
- [IMPR]Sending a receipt auto-syncs the entered email address back to the linked customer profile.
SlabTrack: cert number registry links, contact attempt logging, inline grade/cert entry, and a full analytics reports page.
- [NEW]Cert number links: PSA, BGS, and TAG cert numbers are now clickable links that open the grading company's official cert verification page. Shows in card rows and a "Verify ↗" button in the cert field. Links also included in customer notification emails.
- [NEW]Contact attempt log: replaced the single Contacted toggle with a "Log Attempt" button that records a timestamped history of contact attempts per customer. Shows attempt count and last attempt date.
- [NEW]SlabTrack Reports page: grade distribution bar chart, submission pipeline breakdown, by-company card/graded/declared value stats, top customers by card volume, and headline stats (avg grade, total declared value, % graded).
- [IMPR]Reports link added to the Submissions page header for quick access.
Email receipt delivery, customer email profiles, and post-finalization customer linking.
- [NEW]Email receipts: send a deal receipt directly to the customer from the receipt modal. Sends from noreply@toploader.io.
- [NEW]Customer profiles now store an email address, editable from the customer detail page and used to prefill the receipt email field automatically.
- [NEW]Sending a receipt auto-syncs the email address back to the linked customer profile.
- [NEW]Finalized deals can now be linked to a customer profile after the fact directly from the deal view.
- [IMPR]Emailed receipts correctly apply the shop's payout rounding setting (floor, ceil, nearest) to match what's shown on screen.
Service-aware UI throughout the app, CardLadder search button, clickable dashboard stats, and the /deals route restructure.
- [NEW]Service gating: the dashboard now automatically redirects to only the services your shop has enabled — no dead ends.
- [NEW]Welcome banner, dashboard stats, settings tabs, customer detail panel, and mobile nav all adapt to which services your shop has active.
- [NEW]CardLadder search button added to the deal editor alongside the TCGPlayer button. Both show inline color-coded labels (blue "TCG", green "CL") when enabled together.
- [IMPR]Dashboard stat cards are now clickable and navigate to the relevant section.
- [IMPR]Settings page hides deal-related tabs for shops without deal management, and hides Grading Companies for shops without SlabTrack.
- [IMPR]Mobile bottom nav and FAB button adapt per enabled service.
POS inventory export for 6 systems, server-side export history, and landing page overhaul.
- [NEW]Inventory export in 6 formats: Generic CSV, BinderPOS, Square, Lightspeed, Clover (XLSX), and Shopify.
- [NEW]Clover export generates a properly structured XLSX with all 4 required sheets: Items, Modifier Groups, Categories, and Tax Rates.
- [NEW]"New since [date]" export button appears after each export — only exports items added since the last run, preventing duplicate POS imports.
- [NEW]Export history stored server-side per shop and format. Works correctly across devices and browsers.
Revoke pending invitations and fix for invites not appearing in team UI.
- [NEW]Admins can now revoke pending invitations directly from the team page.
- [FIX]Pending invitations now correctly appear in the team management UI.
- [IMPR]Seat count display now shows pending invites separately: "3 / 5 seats (1 pending)".
Pending invitations tracked in the team screen and counted against seat limits.
- [NEW]Pending invitations shown in a dedicated section on the team management page.
- [IMPR]Seat enforcement now includes pending invitations. Invite flooding blocked at the server level.
- [IMPR]Team header now shows member count and invite count: "4 members · 1 invited".
Full team management: invite staff, assign roles, and control access with per-plan seat limits.
- [NEW]Invite team members by email address. They receive a Clerk invitation link.
- [NEW]Role system: Admin, Manager, and Employee. Each role has different permissions across the deal workflow.
- [NEW]Plan-based seat limits: Starter (2), Team (5), Pro (unlimited), Founding (5).
- [NEW]Admins can change any member's role. Members cannot change their own role.
- [NEW]Invite sends are rate-limited to prevent abuse.
Unusual deal banner and finalize confirmation modal for added confidence before committing.
- [NEW]Unusual deal banner: orange warning appears when your effective payout rate exceeds your base rate by more than 10%.
- [NEW]Finalize confirmation modal shows the full deal summary: customer name, item count, market value, and color-coded cash/trade payout breakdown.
- [IMPR]Mixed-payout deals now show cash (amber) and trade (violet) blocks side-by-side in both the confirm modal and the receipt.
- [IMPR]Receipt print updated to render both payout types for mixed deals with inline color labels.
Mistake prevention warnings so bad deals get caught before they're finalized.
- [NEW]Warning banner surfaces: blank customer name, items with $0 market value, and duplicate card names in the same deal.
- [NEW]Items with a $0 market value are highlighted in red until corrected.
- [IMPR]Save status ("Saved at 2:14 PM") is now always visible, no longer hidden on mobile.
Bottom finalize button and cleaner receipt payout display.
- [NEW]Added a Finalize Deal button at the bottom of each deal. No more scrolling back to the top.
- [IMPR]Receipt redesigned to show cash and trade payouts separately with distinct color blocks and large type.
- [IMPR]Deal status bar (Saved, Finalized, Voided) now always visible regardless of scroll position.
Plans and seat limits, the billing architecture foundation.
- [NEW]Four plans introduced: Starter, Team, Pro, and Founding. Each has a seat limit enforced at the server level.
- [NEW]Per-shop seat overrides available for custom arrangements — contact us to set one up.
- [NEW]Seat limit error message shown at invite time, not after a broken state.
- [IMPR]Billing infrastructure in place — paid plans arriving with v1.0.
Business reports with margin trends, deal volume, and employee performance.
- [NEW]Reports dashboard: deal count, payout totals, market value acquired, and gross margin.
- [NEW]Employee performance breakdown: see who is running the most deals and at what margin.
- [NEW]Date range filtering for all report views.
- [NEW]Inventory analytics: items in stock, total market value held.
Inventory system: finalized deals automatically populate stock.
- [NEW]Inventory system launched. When a deal is finalized, all items are automatically added to inventory.
- [NEW]Inventory status tracking: Available, Sold, and Returned.
- [NEW]Inventory view with sorting and filtering by status, value, and date.
Deal lifecycle states and digital receipts.
- [NEW]Deal lifecycle: Open to Finalized to Voided. Finalized deals can be reopened by admins.
- [NEW]Digital receipts generated at finalization, customer-ready and printable.
- [NEW]Void deal with reason. Voided deals stay in history and are clearly labeled.
- [IMPR]Role-based deal controls: employees can create, managers and admins can finalize.
Autosave and conflict detection.
- [NEW]Autosave: deals save automatically as you type. No manual save required.
- [NEW]Conflict detection: warns you if a deal was updated from another session while you were editing.
- [NEW]Deal timestamps: created at, last saved at, and finalized at tracked on every deal.
Multi-item deals, pricing engine, and payout modes.
- [NEW]Multi-item deal support: add any number of cards or lots to a single deal.
- [NEW]Payout modes: Cash, Trade, and Mixed. Mixed splits payout across both types.
- [NEW]Tier-based pricing with configurable rate tiers based on market value thresholds.
- [NEW]Market value adjustment field for overriding calculated totals.
- [NEW]Per-item cash and trade offers shown inline as you build the deal.
First release. Deal creation and basic pricing.
- [NEW]Deal creation with market value input and payout calculation.
- [NEW]Cash offer display based on a configurable rate.