Plugin capabilities
EmDash is built around a single idea: e-commerce should be a plugin, not a platform. Every feature composes with your existing stack.
Catalog
Products that are just config
Define products, variants, and pricing in a single TypeScript config file. No database schema to design, no admin UI to learn. Ship your catalog the same way you ship code.
- Product variants (size, color, etc.)
- Image galleries with alt text
- Inventory tracking
- Rich text descriptions via MDX
- Category and tag taxonomy
Commerce
Cart and checkout, built in
A complete cart experience — add, update, remove, coupon codes — plus a multi-step checkout flow that works out of the box and is fully customizable.
- Persistent cart via localStorage / cookie
- Multi-step checkout (info → shipping → payment)
- Stripe Checkout and Payment Intents
- Order confirmation emails
- Webhook handlers for fulfillment
Runtime
Sandboxed plugin runtime
EmDash plugins run in an isolated V8 context with strict CPU and network limits. Plugins can't break your storefront and can't leak data between requests.
- 50ms CPU budget per request
- Up to 10 outbound subrequests
- No shared global state
- TypeScript-first plugin API
- Hot reload in development
Deployment
Edge-first by design
EmDash is optimized for Cloudflare Pages and Workers. Your storefront runs at the edge, globally, with no cold starts and no origin server.
- Cloudflare Pages deployment
- Static generation + edge SSR
- KV and R2 storage adapters
- One-command deploy via CLI
- Preview deployments for PRs