10 Real Agency Scenarios: When Litestore Beats Medusa (And Vice Versa)
Forget theoretical comparisons. Here's how Medusa and Litestore perform in actual client projects — flash sales, A/B testing, multi-warehouse, marketplaces, and more.
•7 min readEvery agency has been here: client wants a new commerce build, you need to pick the stack. The architecture diagrams look similar. The feature lists overlap. But when you're deep in a sprint and the client changes scope, the differences become painfully clear.
Here are 10 real scenarios we've encountered — and how each platform actually performs.
Scenario 1: Flash Sale Banner with Inventory Awareness
Client request: "We want a flash sale banner that shows different products based on inventory and disappears when stock runs out."
Medusa Approach
- Create a promotion in the admin dashboard
- Build a custom storefront component to display it
- Set up inventory webhooks or poll the API
- Write client-side logic to hide when products sell out
- Debug cache invalidation when banner shows sold-out items
- Add error handling for race conditions
Time: 2-3 days Team: Frontend dev + backend understanding
Litestore Approach
- Create a Spot with curation binding
- Enable inventory-aware cascade (built-in)
- Spot auto-suppresses when curation inventory depletes
- Fallback cascade shows next promotion automatically
Time: 30 minutes in admin Team: Marketing operator, no dev needed
Winner: Litestore. The Spot primitive with cascade fallbacks solves this at the architecture level.
Scenario 2: Homepage A/B Testing
Client request: "We want to test two different product arrangements on the homepage."
Medusa Approach
- Integrate third-party A/B testing tool (LaunchDarkly, Optimizely, etc.)
- Create two curation variants in the CMS or database
- Write user bucketing logic in the storefront
- Track conversions manually or through analytics platform
- Build admin UI to view results
Time: 1-2 weeks Cost: $300-2000/month for A/B platform
Litestore Approach
- Create a StoredFeed with two variants
- Set traffic allocation (e.g., 50/50)
- Deterministic user bucketing happens automatically
- Confidence decay tracks performance over time
- View results in existing admin dashboard
Time: 1 hour Cost: $0 additional
Winner: Litestore. Stored Feed with A/B variants is a first-class feature.
Scenario 3: Multi-Warehouse Inventory
Client request: "We have 3 warehouses and need real-time inventory sync with different shipping rules per region."
Medusa Approach
- Stock Location module handles multiple warehouses (built-in)
- Fulfillment module with provider plugins routes orders
- Inventory module tracks per-location stock
- Sales Channel module for regional storefronts
- Tax module handles regional compliance
Time: 2-3 days configuration Documentation: Extensive, well-tested patterns
Litestore Approach
- Single-store architecture assumes one location
- Would need schema changes for multi-location
- No fulfillment provider abstraction exists
- Regional tax/shipping would need custom development
Time: 2-4 weeks of architectural work
Winner: Medusa, decisively. Multi-location inventory is a solved problem in their module system.
Scenario 4: Marketing Self-Service
Client request: "The marketing team wants to update promo banners without asking developers."
Medusa Approach
- Admin dashboard handles products and orders
- Visual merchandising requires headless CMS integration
- Marketing edits CMS → storefront fetches → displays
- New banner types still need developer involvement
- Coordination between systems for campaign timing
Result: Marketing can edit content, but not merchandising logic.
Litestore Approach
- Spots are visual merchandising primitives
- Operators create/edit banners directly in admin
- CardType, placement, schedule — all configurable in UI
- Stats enrichment pulls live data automatically
- Cascade ensures something always displays
Result: Marketing controls the full merchandising experience.
Winner: Litestore. Spots were designed for operator self-service.
Scenario 5: Marketplace Build
Client request: "We're building a marketplace where vendors manage their own products."
Medusa Approach
- Multi-tenant architecture from the start
- Sales Channels isolate vendor storefronts
- RBAC module for vendor permissions
- Stock Location per vendor warehouse
- Order module handles split fulfillment
- Payment module manages vendor payouts
Time: 2-4 weeks Pattern: Well-documented, community-proven
Litestore Approach
- Single-store architecture at the core
- Would need: vendor model, scoped queries, permission system
- Split checkout flow required
- Payout tracking system needed
- Essentially rebuilding core assumptions
Time: 2-3 months of architectural work
Winner: Medusa, by a mile. Marketplaces need multi-tenancy at the foundation.
Scenario 6: Contextual Product Badges
Client request: "Show 'Trending', 'Low Stock', 'New Arrivals' badges on products — but contextually appropriate, not everywhere."
Medusa Approach
- Add badge fields to product model
- Write logic to compute which badges apply
- Decide in storefront which to display
- No coordination between products on a page
- Risk: 50 products all showing "SALE" badges
Result: You get badges, but no merchandising intelligence.
Litestore Approach
- Product Signals are computed from state automatically
- SignalContext determines what shows where:
sale_curation→ only discount signalsfeed→ diverse signals (prevents repetition)product_page→ all relevant signals
- Priorities determine which signal wins
- Eligibility functions are deterministic and explainable
Result: Signals are orchestrated, not just displayed.
Winner: Litestore. Signal contexts solve the "everything has a badge" problem.
Scenario 7: Platform Migration
Client request: "We need to migrate from our legacy platform. 10,000 products."
Medusa Approach
- Official migration plugins available for major platforms
- Well-documented data mapping
- Community has done this thousands of times
- Product, variant, curation, customer migration covered
- Order history import supported
Time: 1-2 days for standard migration
Litestore Approach
- Use CSV import for structured data
- Map external schema to Prisma schema with import adapters
- Handle variant/option model differences
- Test extensively with production data
- Custom JSON import for complex data
Time: Depends on data complexity
Winner: Medusa. Ecosystem matters for migrations.
Scenario 8: Real-Time Product Urgency
Client request: "The product page needs to show 'X people are viewing this' and 'Only 3 left'."
Medusa Approach
- "Only 3 left" — query inventory module, display conditionally
- "X people viewing" — need real-time infrastructure:
- WebSocket server setup
- Redis pub/sub for viewer tracking
- Custom storefront integration
- Two separate systems with separate caches
Time: 3-5 days for live viewers
Litestore Approach
- "Only 3 left" —
low_stockSignal (built-in, computed at read time) - "X viewing" — live-viewers component exists
- Signals resolve automatically from product state
- Single data path, unified caching
Time: Already built. Just enable.
Winner: Litestore. These are product signals, and signals are a primitive.
Scenario 9: Multiple Payment Providers
Client request: "We need Stripe, PayPal, and a local payment provider for the Brazilian market."
Medusa Approach
- Payment module provides abstract interface
- Stripe plugin (official, well-maintained)
- PayPal plugin (official)
- Local provider → write plugin following the interface
- Checkout flow handles multiple providers elegantly
- Webhooks managed by module
Time: 1 day for official providers, 2-3 days for custom
Litestore Approach
- Direct Stripe integration exists
- Adding PayPal requires custom implementation
- No payment provider abstraction layer
- Would need to build provider interface first
Time: 3-5 days per additional provider
Winner: Medusa. Payment abstraction is mature and battle-tested.
Scenario 10: Event-Driven Integrations
Client request: "When order status changes, trigger email, SMS, and update their ERP system."
Medusa Approach
- Event Bus emits
order.placed,order.shipped, etc. - Notification module subscribes and handles email/SMS
- ERP integration → write a subscriber that listens for events
- Each handler is independent, loosely coupled
- Retry logic built into event system
- Workflow compensation if ERP call fails
Architecture: Event-driven, decoupled, resilient
Litestore Approach
afterCreate/afterUpdatehooks in BaseCRUD- Call email service directly in hook
- Call SMS service directly
- Call ERP API directly
- If ERP fails... transaction already committed
- Need to add retry queue manually
Architecture: Synchronous, coupled, simpler
Winner: Medusa. Event Bus with workflows handles distributed failures gracefully.
The Scorecard
| Scenario | Medusa | Litestore | Why | | -------------------------- | :----: | :-------: | ------------------------- | | Flash sale with inventory | | W | Spots + cascade fallbacks | | Homepage A/B testing | | W | Stored Feed built-in | | Multi-warehouse inventory | W | | Stock Location module | | Marketing self-service | | W | Spots primitive | | Marketplace build | W | | Multi-tenant foundation | | Contextual product badges | | W | Signal contexts | | Platform migration | W | | Plugin ecosystem | | Real-time urgency signals | | W | Signals + live viewers | | Multiple payment providers | W | | Payment abstraction | | Event-driven integrations | W | | Event Bus + workflows |
Final Score: Medusa 5, Litestore 5
The Decision Framework
Choose Medusa when:
- Building for multiple clients — Module system means 80% reuse
- Complex fulfillment — Multi-warehouse, dropshipping, 3PL
- International commerce — Multi-currency, multi-region tax
- Marketplace model — Vendor isolation is architectural
- Enterprise integrations — ERP, PIM, OMS need event decoupling
Choose Litestore when:
- Building one high-value store — Deep customization > modules
- Merchandising is the moat — Spots, feed, signals are unique
- Marketing drives the experience — Operator self-service is core
- Speed to market matters — Server Actions = fast iteration
- Team is React/Next.js native — No separate backend mental model
The Uncomfortable Truth
Most agencies default to Medusa because:
- Clients ask for "headless" (it sounds modern)
- It looks safer in proposals
- More Stack Overflow answers exist
But for direct-to-consumer suppliers where merchandising is the competitive advantage, Litestore's architecture solves problems Medusa doesn't even have primitives for.
The Spot → Signal → Feed stack is what you'd build if you started from a sourcing's problems instead of a platform's problems.
Neither is wrong. They're optimized for different futures.
Choose based on the problem you're actually solving, not the problem that sounds most impressive in a pitch deck.
