Tech stack for an e-commerce store (2026)
Coffee roaster online store, designed by StackPrism from one sentence: 8 components, a reason for each, and the live checks that watch them.
The stack
Next.js
- Inngest
Node.js
PostgreSQL
Resend
Stripe
- Shippo
Sentry
“An online store for a coffee roaster: product pages, cart and checkout, coffee subscriptions that renew every few weeks, discount codes, stock levels, shipping labels and order emails. We want our own storefront, not a hosted theme.”
Make it yours. Open this stack in the editor to check its health, harden it and hand it to your coding agent. No sign-up, nothing to generate.
Start from this stackSelect a component to see what it does and what it connects to, or pick one above to see what breaks if it goes down. Pinch or use the buttons to zoom.
Why this stack
The storefront is a Next.js app on Vercel, so product pages, cart and checkout are entirely your own design. Behind it, a Node.js API owns the catalog, stock, discount codes and orders in PostgreSQL, takes payments through Stripe and hears about completed payments from Stripe’s webhooks. Inngest triggers the recurring work, such as renewing coffee subscriptions every few weeks. Once an order is paid, the API buys a shipping label from Shippo and sends the order email through Resend. Sentry reports errors.
Why each piece
All 8 components on the diagram: what each one does, what it talks to, and what stops if it goes down.
Next.js Storefront
Runs on Vercel
Public storefront. Calls Node.js API and Sentry (reports).
Nothing else on the diagram depends on it.
Inngest
Runs on Vercel
Recurring jobs. Calls Node.js API (triggers).
Nothing else on the diagram depends on it.
Node.js API
Runs on Vercel
Commerce API. Calls PostgreSQL (reads), Sentry (reports), Stripe (charges), Shippo (labels) and Resend (emails). Called by Next.js Storefront, Inngest (triggers) and Stripe (webhooks).
If it goes down, 2 of 7 components stop working.
PostgreSQL
Supabase host. Called by Node.js API (reads).
If it goes down, 3 of 7 components stop working.
Resend
In External Services
Transactional email. Called by Node.js API (emails).
If it goes down, 1 of 7 components degrades.
Stripe
In External Services
Payments. Calls Node.js API (webhooks). Called by Node.js API (charges).
If it goes down, 1 of 7 components degrades.
Shippo
In External Services
Shipping labels. Called by Node.js API (labels).
If it goes down, 1 of 7 components degrades.
Sentry
Error tracking. Called by Next.js Storefront (reports) and Node.js API (reports).
If it goes down, 2 of 7 components degrade.
When this stack fits
- You want full control over the storefront’s design and the checkout flow.
- Subscriptions renew on your own schedule, not a fixed monthly plan.
- You ship physical goods and want a label the moment an order is paid.
When to pick something else
- You’d rather not build cart, checkout, tax and inventory: a hosted platform such as Shopify gives you all of that.
- A large catalog needs faceted search: add a search engine, because this stack queries PostgreSQL directly.
- You sell in many countries: taxes and duties need a service this diagram doesn’t include.
What you need to build this
8 components across 6 areas of the stack.
Build it with your AI agent
Hand the stack to Claude Code, Codex, Cursor or any coding agent as a brief: how it connects, install steps and a build plan.
Frontend1
- Docs
Next.js Storefront
Public storefront
npm install next
Backend & APIs3
- Docs
Node.js API
Commerce API
Inngest
Recurring jobs
Shippo
Shipping labels
Data1
- Docs
PostgreSQL
Supabase host
Payments1
- Docs
Stripe
Payments
npm install stripe
Email & messaging1
Resend
Transactional email
Observability1
- Docs
Sentry
Error tracking
npm install @sentry/nextjs
Install
npm install next stripe @sentry/nextjs
SDKs only. Pick your own database driver or ORM.