Documentation
Troubleshooting
Plugin not loading
Confirm dashcommerce() is inside the EmDash integration’s plugins array (not parallel to emdash() ). Typos in astro.config silently fail surprisingly often — compare against Getting started.
emdash migrate does not exist
EmDash applies core database migrations as part of bun emdash seed (and also when running emdash init / emdash dev in typical setups). DashCommerce does not require a second migration CLI — wire the plugin, run npx dashcommerce-merge-seed (or merge JSON manually), then bun emdash seed, then start the app so plugin lifecycle hooks can run.
Seed errors
If seeding fails, re-run npx dashcommerce-merge-seed against the current @dashcommerce/core so your file matches the current products collection and product_category / product_tag taxonomies (deduped by slug / name). If you edit JSON by hand, the defineProductsCollection() shape must sit under top-level collections and taxonomies under taxonomies. Confirm emdash seed and dashcommerce-merge-seed target the same path (package.json → emdash.seed or .emdash/seed.json — see Getting started).
Checkout or admin errors after Stripe
Double-check secret vs publishable keys, test vs live mode, and that keys were saved in the EmDash admin (not only in a local .env if your build also expects them server-side). Watch server logs when submitting a test PaymentIntent — Stripe’s API errors are usually explicit once you see the response body.
This marketing site’s waitlist API
The waitlist form on dashcommerce.dev is separate from your EmDash project. If you’re debugging waitlist email capture here, ensure production has DATABASE_URL set — see deploy docs. That does not affect your self-hosted EmDash + DashCommerce store.
Still stuck?
Open a focused issue on GitHub with your EmDash version, DashCommerce version, minimal config snippet (redact secrets), and the exact error string.