All stacks

stack

Commerce Stack

Single-vendor storefront skeleton with Medusa, Stripe, and Algolia search

The Commerce Stack is the skeleton for AppLiaison products that sell physical or digital goods from a single merchant — storefronts, subscription boxes, POS systems, and the like. It pairs a Next.js frontend with Medusa as the headless commerce engine, Stripe for payments, and Algolia for product search. The split lets the merchant-side admin (catalog, orders, fulfillment) live in Medusa's mature backoffice while the storefront is fully custom.

Architecture

Architecture variant: standard
Frontend
Next.js 14 (App Router) with ISR for product pagesMedusa JS SDKTailwind + headless primitives
Backend
Medusa (catalog, orders, fulfillment, inventory)Postgres 16Redis (cart sessions, rate limiting)
Data + infra
Vercel (storefront)Render or Fly (Medusa server + workers)AWS S3 + CloudFront (product media)
Integrations
Stripe (cards, Apple Pay, Google Pay, Klarna)ShipStation or Shippo (fulfillment)Klaviyo or Resend (email)PostHog or GA4 (analytics)

When to choose this stack

  • There is one merchant, not many — see Marketplace Stack for two-sided
  • Catalog complexity (variants, bundles, gift cards) needs a real commerce engine
  • You want a custom storefront, not a Shopify theme
  • You need product search with facets, not just keyword
  • Fulfillment integrates with shipping carriers, not just a PDF packing slip

What's NOT included

  • Multi-vendor payouts — use the Marketplace Stack
  • In-store POS hardware integrations beyond a card reader — that lives in Counterpoint
  • Wholesale / B2B price lists with credit terms (available as a paid add-on)
  • Customs / DDP for cross-border (handled by integrating Easyship or equivalent at delivery time)

How the pieces fit

Medusa runs as the source-of-truth commerce engine — it owns the product catalog, the cart state machine, the order lifecycle, and the fulfillment workflow. The Next.js storefront is a fully custom presentation layer that talks to Medusa over its REST API, and to Algolia for fast filtered search.

Product pages are statically generated with ISR, so a price change in the admin propagates within seconds while the page itself loads on the edge. Cart sessions live in Redis to keep the storefront stateless across function invocations.

Why these choices

Medusa over rolling our own commerce engine: catalog, orders, and fulfillment are domains where the boring work is genuinely boring and the bugs are genuinely expensive. Medusa is the mature open-source option.

Algolia for product search: search-as-you-type with facets is what makes a storefront feel modern. Postgres full-text would work for keyword search alone but falls over once you add facets and typo tolerance.

Custom storefront over Shopify Hydrogen: the whitelabel-from-day-one positioning means we want full control of the rendering layer. Hydrogen would shorten time-to-launch but constrains the brand.

Apps built on this stack