SaaS
TCG Ship
Shipping automation for trading card sellers
Visit siteThe problem
Selling cards on TCGplayer means a lot of repetitive desk work. Orders come out as CSV exports, every package needs the right postage class for its value and weight, labels and packing slips print from different places, and getting any of it wrong costs either money or a chargeback. Doing thirty orders by hand is an evening.
The approach
TCG Ship turns that evening into a batch. Orders come in straight from TCGplayer, the app picks a shipping service per order using value and weight thresholds you control, buys the postage through EasyPost against a prepaid wallet, and hands back labels and packing slips already sized for a 4x6 thermal printer.
What it does
- Order import that reconciles
- Pulls orders through the TCGplayer API rather than scraping the UI, and reconciles repeat CSV imports so re-uploading an export doesn't duplicate orders. Handles both the shipping export and the pull sheet, keeping per-order quantities correct.
- Service selection by value and weight
- Configurable thresholds decide between USPS letter rates for light shipments, Ground Advantage, and signature-required services as order value climbs, so cheap orders don't get expensive postage and valuable ones don't travel unprotected.
- Labels and packing slips in one pass
- Generates 4x6 PDFs, merges the selected labels into a single document instead of a zip of files, and provides an auto-print view so a batch goes to the thermal printer without clicking through each one. Labels can be refunded when an order falls through.
- Prepaid postage wallet
- Balance, transaction history, top-ups, and a guard that estimates label cost before purchase so a batch can't half-complete on an empty balance.
- Chrome extension
- A companion extension that runs on TCGplayer itself, triggering order import and packing-slip export from the page you're already on, routing API calls through a background script to avoid CORS.
- Cards you can actually recognise
- Order lines show card images pulled from the TCGplayer CDN along with card number and rarity, so verifying a pull against the packing slip is visual rather than a text match.
Built with
- Next.js 15
- TypeScript
- Prisma
- PostgreSQL
- EasyPost
- TCGplayer API
- Chrome Extension
- Tailwind
What's still open
- Confirm the production domain and finish the public launch
- Broaden carrier options beyond USPS
- Surface batch history and audit trail in the dashboard