Multi-Tenant
Architecture
Local apparel shops — screen printers, embroiderers, custom gear suppliers — run on spreadsheets, text messages, and tribal knowledge. A coach emails a size chart. A booster club collects cash at a table. Someone’s kid keeps a Google Sheet of who ordered what. It works until it doesn’t, and it always eventually doesn’t. SpreeShop replaces all of that with a platform built specifically for how apparel shops and their clients actually operate.
We built SpreeShop because we live in this world. Palmetto High School’s TigerVision broadcast is one of our longest-running productions, and the same booster clubs and athletic departments we work with every fall are the same organizations that need this. We knew the problem from the inside, so we built the solution from the inside.
The Platform Architecture
SpreeShop is multi-tenant at its core. One apparel shop signs up and immediately has the infrastructure to create unlimited branded storefronts for every school, team, nonprofit, and business they serve. Each storefront runs on its own subdomain (palmetto-tigers.spreeshop.xyz) or a fully custom domain, with its own logo, colors, product catalog, and customer base.
Tenant resolution happens at the edge via Next.js middleware — every inbound request is matched to a store in under 3ms, the correct storefront is served, and the marketing site at spreeshop.xyz remains completely independent. A shop managing 40 school stores manages them all from a single dashboard without ever logging in and out of different accounts.
Key Features
Group Orders
A coach creates a group order, sets a deadline, and shares a link. Every player, parent, or team member clicks the link, picks their own items, and pays individually. No money collection, no size-chart spreadsheet, no one chasing down payments a week after the deadline. When the deadline closes, the shop gets a consolidated production order. Group order members are tracked by name, jersey number, and order status from the admin dashboard.
League Management
For leagues running uniforms across multiple teams, SpreeShop goes further. A league is created with teams and a full player roster — name, jersey number, size, email. Each player gets a unique claim token sent to them directly. They click their link, confirm their details, and their order is placed. No parent fills out a form twice. No coach has to follow up. The shop sees exactly which players have claimed and which haven’t, and can resend invitations with a single click.
Production Pipeline
Every paid order enters a production board modeled after real apparel shop workflow: New → Art Review → Proof Sent → Proof Approved → In Production → QC → Packaged → Fulfilled. Orders are dragged between stages like a kanban board. Rush orders are flagged. The production view shows item thumbnails, decoration type, color counts, and personalization details for every order in one place.
Digital Proof Approval
Shops upload a proof, and the customer receives a link with a unique review token — no login required. They see the proof, can leave comments, and click to approve or request changes. The proof has full version history. Every comment and decision is logged. When the customer approves, the order automatically advances in the production pipeline. No more emailing PDFs and waiting three days to find out if the client got it.
Fundraising & Campaign Mode
Any storefront can be flipped into a fundraising campaign. A goal, a deadline, and an optional note are set in the admin. Progress is displayed on the storefront. Campaign mode lets a store be time-gated — it opens on a specific date and closes automatically. Schools and booster clubs running seasonal spirit wear campaigns use this to eliminate the “we missed the order window” problem entirely.
Business Accounts & B2B Terms
Shops serving corporate clients, school districts, or repeat wholesale buyers can set up business accounts with NET15, NET30, or NET60 payment terms, credit limits, and tax-exempt status. Business clients can be invited to self-onboard via a tokenized link — they fill in their info and the account is created on both sides without manual back-and-forth. Invoice-based ordering replaces the credit card checkout for these accounts.
Quote Builder
Build itemized quotes directly in the admin with product name, colors, size breakdown, quantity, decoration type, color count, setup fee, and line total. Quotes are numbered, have configurable validity dates, and are sent to customers via a unique review link — no login required to view and accept. Accepted quotes move into the order pipeline automatically. Status tracking (Draft, Sent, Accepted, Declined, Expired) keeps the shop’s pipeline visible at a glance.
Stripe Connect Payments
Each shop connects their own Stripe account. Customer payments go directly to the shop — SpreeShop is not a payment middleman. Volume discounts, coupon codes, rush fees, and shipping configuration are all per-store. Tax collection, tax-exempt order handling, and refund processing are built into the order workflow. The checkout is hosted, branded, and Stripe-secure.
Artwork Library
Every store has an artwork library backed by S3 object storage. Logos, mascots, sponsor marks, and design files are uploaded once and assigned to products with specific placement areas. Print files are attached at the order-item level. The shop always knows which file prints on which order, and customers can upload their own artwork at checkout when that option is enabled.
The Tech Stack
SpreeShop is built on Next.js 16 and React 19 with full TypeScript coverage. PostgreSQL handles the data layer through Prisma ORM with a schema built around the actual relationships in apparel shop operations — stores, products, variants, artwork, orders, proofs, quotes, leagues, teams, and players are all first-class entities, not afterthoughts.
Next.js 16 / React 19
App Router, server components, edge middleware for sub-3ms tenant resolution
PostgreSQL + Prisma
Typed ORM, schema-driven migrations, relational data across 20+ models
Stripe Connect
Direct shop payouts, hosted checkout, webhook-driven order lifecycle
Auth.js v5 + 2FA
Secure session management, two-factor authentication for store admins
S3 Object Storage
Artwork uploads, proof files, print files — stored, served, and presigned
Tailwind v4 + Radix UI
Accessible component primitives, custom-branded per-store storefronts
SendGrid
Transactional email for proof links, order confirmations, league invitations
Recharts + jsPDF
Analytics dashboards and PDF export for invoices, pick lists, and quotes
Who SpreeShop Is For
The platform is sold to apparel shops — screen printers, embroiderers, custom uniform suppliers — who want to give their school, sports, nonprofit, and business clients a professional ordering experience without building anything themselves. One shop subscription enables unlimited storefronts for every client in their book.
For the end customer — the school booster club, the youth soccer league, the church looking for event shirts — SpreeShop is their branded online store. They never see the platform; they just see their school’s logo and colors and a clean shopping experience that works on any device.
SpreeShop competes directly with InkSoft, OrderMyGear, SquadLocker, DecoNetwork, and Spirit Wear Central — platforms that charge thousands per year for feature sets that still require manual workarounds for group orders, league rosters, and proof workflows. SpreeShop ships all of that in the base product.
SpreeShop Is Live
The platform is live at spreeshop.xyz. A fully functional demo store is running at demo.spreeshop.xyz. If you run an apparel shop and want to see it with your own branding, reach out.
Visit SpreeShop
See the Demo Store