A unified desktop application for sports card sellers with embedded Web and API servers. Uses AI vision to scan cards, manage inventory, research pricing, and export Whatnot-compatible CSV files.
FlipKit Hub combines three components in one package:
- Desktop App - Full-featured application built with Avalonia UI 11 (Windows/Linux)
- Web Server - Mobile-optimized interface for on-the-go scanning (auto-starts on port 5000)
- API Server - Remote access for multi-device workflows (auto-starts on port 5001)
Built with C# / .NET 8, using Avalonia UI 11 for desktop and ASP.NET Core MVC for web.
Note: This is a production-ready application with complete features for the core workflow. v3.2.0 introduces flexible scanning workflows optimized for mobile research and smart pricing tools.
Pre-built executables are available on the Releases page. No .NET runtime install needed -- these are fully self-contained.
Unified package with Desktop app + embedded Web and API servers:
| Platform | File | Size |
|---|---|---|
| Windows (x64) | FlipKit-Hub-Windows-x64-v3.2.0.zip |
~150 MB |
| Linux (x64) | FlipKit-Hub-Linux-x64-v3.2.0.zip |
~145 MB |
Note: macOS builds are not provided due to code signing requirements. macOS users can build from source.
Quick Start:
- Download and extract the package for your platform
- Launch
FlipKit.Desktop.exe(Windows) or./FlipKit.Desktop(Linux) - Web and API servers auto-start automatically
- Browser opens to
http://localhost:5000(if enabled in Settings) - On your phone:
- Connect to same Wi-Fi network as your computer
- Option A: Scan QR code from Settings → Servers section
- Option B: Navigate to
http://YOUR-COMPUTER-IP:5000
- Start scanning cards from your phone or desktop!
What's Included:
- Desktop application with full feature set
- Web server for mobile access (managed from Settings)
- API server for remote workflows (managed from Settings)
- Shared SQLite database with WAL mode for concurrent access
- Complete documentation in
Docs/folder
Server Management:
- All servers are managed from Settings → Servers in the Desktop app
- Auto-start on launch (configurable)
- Start/Stop buttons with live status monitoring
- QR code for instant mobile connection
- Port configuration (default: Web 5000, API 5001)
- Real-time server logs viewer
These features are implemented and functional today:
- AI Card Scanning -- Browse for a photo of any sports card (front + optional back) and AI vision extracts player name, year, set, brand, parallel, serial numbering, and more. Uses free OpenRouter vision models with automatic fallback across 11 models on rate limiting.
- Bulk Scan -- Select multiple card images at once, optionally pair front/back images, and scan them all in one batch with progress tracking and cancellation support. Rate-limiting built in for free-tier models.
- Variation Verification -- Cross-references AI scan results against local set checklists to catch hallucinated parallels, correct player names, and validate card numbers. Includes a targeted confirmation pass for ambiguous results. Currently ships with 97 seeded checklists covering major sets from 2017-2024:
- Football (48 sets): Panini Prizm, Donruss, Donruss Optic, Mosaic, Phoenix, Select (2017-2024)
- Basketball (21 sets): Panini Prizm, Donruss Optic, Mosaic (2018-2024)
- Baseball (28 sets): Topps Chrome, Bowman, Bowman Chrome, Topps (2018-2024)
- Inventory Grid -- Browse, search, filter, and sort your card collection in a DataGrid. Track card status (Draft, Priced, Listed, Sold) and price staleness indicators.
- Pricing Workflow -- Step through unpriced cards one at a time with intelligent Terapeak and eBay sold listing links that open in your browser. Search URLs use customizable templates to include relevant card details (year, manufacturer, brand, player, parallel, team, and grading info) while excluding overly specific fields like card number and serial number for broader results. For graded cards, searches include "graded [grade]" to find comparable sales across all grading companies (PSA, BGS, CGC, SGC). Enter market value, get a suggested list price, and save with cost basis tracking.
- Reprice Feature -- Send any priced card back to the pricing queue from the Inventory view to update market values or correct pricing mistakes.
- Stale Price Repricing -- Cards whose price is older than a configurable threshold (default 30 days) are flagged. Walk through them to keep or update prices.
- Mark as Sold -- Record sale price, platform (Whatnot/eBay), fees, and shipping cost. Net profit is auto-calculated.
- Delete Cards -- Remove cards from inventory with a confirmation dialog.
- ImgBB Image Upload -- Batch upload card images to ImgBB for free public URLs compatible with Whatnot.
- Whatnot CSV Export -- Generate properly formatted CSV files with SEO-optimized, platform-specific titles and descriptions. Choose export platform (Whatnot/eBay/COMC/Generic) to use the appropriate title template for that marketplace's search algorithm.
- Tax Report Export -- Export sold cards as a CSV with sale date, cost basis, fees, and net profit for record-keeping.
- Reports -- View sold card summary with total revenue, cost basis, fees, and net profit. Monthly breakdown and top sellers list.
- Listing Title Optimization -- SEO-optimized title templates for different platforms (Whatnot, eBay, COMC, Generic). Customize title format per platform using placeholders like
{Year} {Brand} {Player} {Parallel}. Search query templates optimize pricing research by excluding overly specific fields. Export platform selector lets you choose which template to use per-export. Based on WTSCards research showing different platforms weight fields differently for search ranking. - Server Management (FlipKit Hub) -- Embedded Web and API servers managed directly from the Desktop app. Auto-start on launch, Start/Stop controls with live status monitoring, port configuration with automatic conflict resolution, QR code generation for instant mobile connection, network IP display for all local addresses, and real-time server logs viewer. Everything managed from Settings → Servers.
- Smart Hybrid Data Access -- Access your card inventory from anywhere on your private Tailscale network with automatic local/remote detection. The app intelligently chooses between fast local database access (when on the same computer) or API-based access (when remote) with zero configuration. Run the optional FlipKit.Api server on your main computer to enable remote access from laptops or mobile devices. Works seamlessly across Desktop and Web apps. Zero cost, no cloud hosting - your data stays on your private Tailscale network.
- Settings -- Configure API keys, default AI model, fee percentages (Whatnot/eBay), shipping costs, price staleness threshold, verification preferences, server management, and Tailscale sync. Includes full title and search template customization with validation, preview, and reset options.
- Setup Wizard -- First-run walkthrough for entering API keys and setting preferences.
- Local-First Data -- All data is stored on your machine in SQLite. API keys are stored in your local app data folder, never in the repo. Optional Tailscale sync keeps data synchronized across your computers via private network.
Mobile-optimized web interface accessible from any device on your network. Now embedded in FlipKit Hub - starts automatically with Desktop app, managed from Settings:
- Mobile Camera Scanning -- Use your phone's camera to scan cards directly from the web browser. Touch-optimized upload interface with instant camera access.
- Flexible Scanning Workflows (v3.2.0) -- Choose between Buying Mode (quick comp research without saving to inventory) and Selling Mode (full catalog building). Edit AI scan results before researching or saving. Iterate between editing and pricing research without database commitment.
- Editable Scan Results -- Review and correct AI extractions with 15 essential fields (player, sport, year, brand, set, grading, parallels, features) before committing to your inventory or researching prices.
- Research Without Saving -- Check card values while shopping at shows without cluttering your inventory. Scan → Edit → Research Comps → Discard. Perfect for buying decisions.
- Full Inventory Management -- Browse, search, filter, edit, and delete cards from your phone. Responsive table layout with pagination, status filters, and quick actions.
- Card Details & Editing -- View complete card information and edit any field (price, status, notes, etc.) from mobile. Changes sync instantly with desktop app.
- Smart Pricing Research -- Intelligent eBay query builder dynamically includes relevant fields (sport, brand, set, team, parallels, grading) while excluding overly specific data (card numbers, serial numbers) for optimal comp results. Real-time profit calculator shows fees, revenue, and margin as you type.
- CSV Export -- Generate Whatnot-compatible CSV files directly from your phone. Select cards and export for bulk listing.
- Sales Reports -- View sold card analytics, revenue, and profit tracking from mobile.
- Shared Database -- Uses the same SQLite database as the desktop app with Write-Ahead Logging (WAL) for concurrent access. Perfect for multi-device workflows.
- No Installation on Mobile -- Just open your phone's browser and navigate to your computer's IP address. No app store, no downloads on your phone!
- Tailscale Network Access -- Access from anywhere on your private Tailscale network. Scan cards at a show, manage inventory from a coffee shop, or check prices while shopping - all from your phone securely connected to your home computer.
Use Cases:
- Quick comp research while shopping -- Scan cards at shows, check prices instantly without saving to inventory (Buying Mode)
- Build inventory catalog -- Scan, price, and save cards for listing (Selling Mode)
- Iterate on pricing -- Edit card details, research comps, go back and edit again, then save when ready
- Mobile-first workflow -- Scan away from your desk, manage on desktop later
Here's what's rough or missing in the desktop application:
- Checklist data focused on recent years -- 97 sets are seeded (2017-2024 for major Panini/Topps releases), but older sets and niche brands are not included. Cards from unseeded sets will scan fine but won't get checklist verification.
- No drag-and-drop -- Images must be added via the file browser. No clipboard paste either.
- Batch scanning is new -- The bulk scan feature was just added and may have rough edges with large batches (50+ cards).
- No automated tests -- The codebase has no unit or integration tests yet.
- macOS builds are untested -- The macOS executables cross-compile from Windows but haven't been tested on actual Mac hardware. They may need
chmod +x FlipKitand Gatekeeper approval. - No auto-update -- You'll need to download new releases manually.
- Basic UI polish -- Uses Avalonia's Fluent theme defaults. No custom icons, splash screen, or loading animations.
- AI accuracy varies -- Free vision models are decent but not perfect (~70-80% accuracy on variations). The verification pipeline helps, but edge cases will slip through.
- Single-window only -- No multi-window support, no system tray.
Limitations specific to the web application:
- No Bulk Scanning -- Web app only supports single-card scanning (up to 2 images: front + back). Use desktop app for batch scanning (10+ cards) or detail shots (5 images per card).
- No Settings Configuration -- API keys and preferences must be configured in the desktop app. Web app reads from the shared
settings.jsonfile. - No Authentication -- Web app has no login system. When using Tailscale, network access is restricted to your private network. For local Wi-Fi, anyone on your network can access it.
- HTTP Only (Local Wi-Fi) -- Local network access uses HTTP. Tailscale provides encrypted tunnel. For internet deployment, HTTPS would be needed.
- Designed for Tailscale/Local Access -- Best used on private Tailscale network or trusted local Wi-Fi. Not suitable for public internet deployment without authentication and HTTPS.
- QR Code Access -- Use the QR code in Desktop Settings → Servers for instant mobile connection, or manually enter your computer's IP address.
Planned improvements, roughly in priority order:
- Expand checklist database -- Add pre-2017 sets, niche brands (Leaf, Sage, Upper Deck), and international releases
- Drag-and-drop image support -- Drop card photos directly onto the scan area
- Unit and integration tests -- Cover ViewModels, services, and the verification pipeline
- macOS .app bundle -- Proper macOS application bundle with icon and Info.plist so it behaves like a native app
- Linux support -- Test and publish Linux builds
- Improved AI prompts -- Fine-tune prompts for better accuracy on parallels, inserts, and multi-sport sets
- Per-field confidence indicators -- Show colored dots next to each form field after scanning to indicate AI confidence
- Drag-to-reorder columns -- Persist user's preferred column order in the inventory grid
- Dark mode toggle -- Currently follows system theme; add an explicit toggle in settings
- Auto-update -- Check GitHub releases for new versions on startup
- Clipboard paste -- Paste images directly from clipboard or screenshots
- Multi-card images -- Detect and split photos containing multiple cards
- Price history charts -- Visualize price trends over time for individual cards
- Bulk edit -- Select multiple cards and update fields (status, price, etc.) in one action
Future enhancements for the web application:
- Progressive Web App (PWA) -- Install web app to phone home screen like a native app, offline support
- Authentication -- Add login system for multi-user support and secure access
- HTTPS Support -- SSL/TLS certificates for encrypted communication
- Auto-Discovery -- Automatic detection of server on local network (no manual IP entry)
- Dark Mode -- Toggle between light and dark themes
- Real-Time Sync -- Live updates using SignalR when changes are made in desktop app
Note: Inventory management, export, reports, and settings will remain desktop-only to maintain a focused mobile experience.
1. CAPTURE Take a photo of your card (front + optional back)
|
2. AI SCAN AI vision extracts structured card data (player, year, set, parallel, etc.)
|
3. VERIFY Cross-reference against set checklists to validate identification
|
4. REVIEW Edit extracted data in a form, save to local SQLite database
|
5. PRICE Research comps via Terapeak/eBay, set your listing price
|
6. EXPORT Generate Whatnot CSV, upload to Seller Hub, publish
| Component | Technology |
|---|---|
| Language | C# / .NET 8 |
| Desktop UI | Avalonia UI 11 (Fluent theme) |
| Web UI | ASP.NET Core 8.0 MVC with Razor Views |
| Frontend | Bootstrap 5 (responsive, mobile-first) |
| Architecture | MVVM (Desktop), MVC (Web), 3-Project Structure |
| Database | SQLite via Entity Framework Core with WAL mode |
| AI Vision | OpenRouter API (11 free vision models with automatic fallback) |
| Image Hosting | ImgBB API |
| CSV Export | CsvHelper |
| DI | Microsoft.Extensions.DependencyInjection |
The codebase uses a 3-project architecture for maximum code reuse and separation of concerns:
FlipKit.sln
│
├── FlipKit.Core/ # Shared business logic (net8.0 library)
│ ├── Models/ # Domain entities (Card, PriceHistory, enums)
│ ├── Services/ # Service interfaces + implementations
│ ├── Data/ # EF Core DbContext, migrations, seeders
│ └── Helpers/ # Shared utilities (FuzzyMatcher, etc.)
│
├── FlipKit.Desktop/ # Desktop application (Avalonia)
│ ├── ViewModels/ # MVVM ViewModels (CommunityToolkit.Mvvm)
│ ├── Views/ # Avalonia XAML views
│ ├── Converters/ # XAML value converters
│ ├── Services/ # Desktop-specific services (file dialogs, etc.)
│ └── Styles/ # Avalonia styles
│
├── FlipKit.Web/ # Web application (ASP.NET Core MVC)
│ ├── Controllers/ # MVC controllers (Home, Scan, Inventory, etc.)
│ ├── Views/ # Razor views with Bootstrap 5
│ ├── ViewModels/ # DTOs for views
│ ├── Services/ # Web-specific services (file upload, etc.)
│ └── wwwroot/ # Static assets (CSS, JS, images)
│
└── Docs/ # Design specs and planning documents
Code Reuse: ~55% of the codebase is shared via FlipKit.Core, including all business logic, database access, AI scanning, pricing, export, and validation.
Desktop App:
git clone https://github.com/mthous72/FlipKit.git
cd FlipKit
dotnet run --project FlipKitWeb App:
cd FlipKit
dotnet run --project FlipKit.Web
# Open browser to http://localhost:5000Desktop App:
# Windows
dotnet publish FlipKit -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
# macOS Intel
dotnet publish FlipKit -c Release -r osx-x64 --self-contained -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
# macOS Apple Silicon
dotnet publish FlipKit -c Release -r osx-arm64 --self-contained -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=trueWeb App (Use build scripts for complete packages with launcher scripts and documentation):
# Windows - Creates ZIP with StartWeb.bat launcher
./build-web-package.bat
# macOS/Linux - Creates all 3 packages (macOS Intel, macOS ARM, Linux)
bash build-web-package.shOr manually publish Web App:
# Windows
dotnet publish FlipKit.Web/FlipKit.Web.csproj -c Release -r win-x64 --self-contained -o publish/web-win
# macOS Intel
dotnet publish FlipKit.Web/FlipKit.Web.csproj -c Release -r osx-x64 --self-contained -o publish/web-macos-intel
# macOS ARM
dotnet publish FlipKit.Web/FlipKit.Web.csproj -c Release -r osx-arm64 --self-contained -o publish/web-macos-arm
# Linux
dotnet publish FlipKit.Web/FlipKit.Web.csproj -c Release -r linux-x64 --self-contained -o publish/web-linuxDesktop App: On first launch, a setup wizard walks you through entering your API keys.
Web App: Configuration must be done via the Desktop app. The Web app reads from the shared settings.json file.
API Keys needed:
- OpenRouter API key (get one here) -- Free to sign up. The app defaults to free vision models, so scanning costs nothing.
- ImgBB API key (get one here) -- Optional. Only needed if you want to upload images for Whatnot listings.
File Locations:
- Settings:
%APPDATA%\FlipKit\settings.json(Windows) or~/Library/Application Support/FlipKit/settings.json(macOS/Linux) - Database:
%APPDATA%\FlipKit\cards.db(Windows) or~/Library/Application Support/FlipKit/cards.db(macOS) or~/.local/share/FlipKit/cards.db(Linux)
Shared Between Apps: Desktop and Web apps use the same settings.json and cards.db files, so your API keys and inventory are automatically synced. Nothing is sent anywhere except the API calls you initiate.
- Football
- Baseball
- Basketball
This is an early-stage project and contributions are welcome. If you're a sports card seller, a .NET/Avalonia developer, or just interested in AI-powered tools, here are some ways to help:
- Report bugs -- Open an issue with steps to reproduce
- Test on macOS -- The Mac builds haven't been verified on real hardware yet. If you have a Mac, try it out and let us know what happens
- Add checklist data -- The variation verification pipeline is only as good as its data. If you know a set well, help us build out the checklist database
- Improve AI prompts -- If the scanner consistently misidentifies a particular type of card, share examples so we can refine the prompts
- Write tests -- The codebase has zero tests. Pick a ViewModel or service and add coverage
- UI/UX improvements -- The interface is functional but plain. Designers and frontend developers welcome
- Feature development -- Check the roadmap above and pick something that interests you
EDUCATIONAL AND INFORMATIONAL USE ONLY
FlipKit is provided for educational and informational purposes only. This software is not intended to provide professional accounting, financial, tax, or business advice.
NO WARRANTIES
This software is provided "AS IS" without warranty of any kind, either express or implied, including but not limited to:
- Accuracy of AI card identification or pricing data
- Accuracy of financial calculations, profit/loss reporting, or tax information
- Accuracy of data exported to third-party platforms
- Fitness for any particular purpose
- Merchantability or non-infringement
USE AT YOUR OWN RISK
By using FlipKit, you acknowledge and agree that:
- You are solely responsible for verifying all card identifications, prices, and financial calculations
- You should independently verify all data before making business decisions or filing taxes
- The developers and contributors assume no liability for any losses, damages, or errors resulting from use of this software
- AI-generated card data may contain errors or inaccuracies
- Pricing data from third-party sources may be outdated or incomplete
- You are responsible for complying with all applicable laws, regulations, and marketplace terms of service
THIRD-PARTY SERVICES
FlipKit integrates with third-party APIs (OpenRouter, ImgBB, eBay) that have their own terms of service. Users are responsible for:
- Obtaining and maintaining valid API keys
- Complying with each service provider's terms and conditions
- Any costs or rate limits imposed by these services
- Ensuring proper use of AI-generated content in accordance with provider policies
FINANCIAL AND TAX REPORTING
FlipKit's financial reports and profit calculations are estimates only and should not be used as the sole basis for:
- Tax filing or reporting
- Business financial statements
- Legal or regulatory compliance
- Investment or business decisions
Consult with qualified accountants, tax professionals, or financial advisors for professional advice.
NO GUARANTEES
The developers make no guarantees regarding:
- Uptime, availability, or continued operation of the software
- Compatibility with future versions of dependencies or operating systems
- Data integrity, backup, or recovery
- Support, updates, or bug fixes
Use this software at your own risk. Always maintain backups of your data.
MIT
Copyright (c) 2026 FlipKit Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.