Store Rebuild

Key decisions and architecture for the store rebuild.

Architecture

Browser → Next.js (Solace fork) → Medusa v2 (commerce)
                                 → Payload CMS (editorial content)
                                 → Stripe + PayPal (payments)

Square POS ↔ Medusa module ↔ Medusa (bidirectional inventory)
ServiceTechPort
Commerce APIMedusa v29000
StorefrontNext.js (Solace)3000
CMSPayload 3.x3001
SearchMeiliSearch7700
DatabasePostgreSQL 165432
CacheRedis 76379

Data Ownership

DataSource of Truth
Products, pricingMedusa
InventorySquare POS (synced to Medusa)
Orders (online)Medusa
Orders (in-store)Square POS
Editorial contentPayload CMS
PaymentsStripe
Customer accountsMedusa

Key Decisions

  • Why Medusa over Saleor? See saleor-vs-medusa. Fewer services, in-process integrations, JS-native backend. Solace starter provides strong storefront base.
  • Why Payload over Strapi? TypeScript-native, Next.js-aligned, cleaner DX. (Solace ships with Strapi — swapping to Payload.)
  • Why keep Square? POS is entrenched for in-store operations. Bidirectional sync via Medusa module with ISBN as shared key.
  • Payments: Stripe + PayPal (both ship working in Solace starter).

Design Direction

“The Indie Publisher” — warm, curated, opinionated (not generic e-commerce).

ElementValue
HeadingsPlayfair Display / Fraunces / Instrument Serif
BodySatoshi / General Sans / Cabinet Grotesk
AccentsJetBrains Mono
BackgroundWarm off-white #FAFAF8
AccentBurnt orange #C4501A
SuccessForest green #2D6A4F
WarningDark goldenrod #B8860B
Max width1280px
Radius6px
Grid4-col desktop, 2-col mobile

Dark mode palette also defined in the spec.

Product Types

5 product types: Book, RPG Product, Comic/Graphic Novel, Merchandise, Gift Card. Each has specific attributes (ISBN, author, publisher, format, page count, etc.).

Shipping

  • US Standard: 50
  • Local Pickup: free (115 Brunswick St, Jersey City)

Estimated Infrastructure

~$45/mo Railway (4 services: Medusa, Storefront, MeiliSearch, Redis + PostgreSQL), plus media storage and email.