Stacks / Newsletter
WooCommerce / Ghost
Sell a file or a membership you host. WooCommerce is the GPL shop for downloads; Ghost is MIT paid publications.
The problem
Gumroad takes a cut of every sale and holds the file. You wanted a checkout, a download, and a list you can export. WooCommerce (GPL) sells digital goods on WordPress. Ghost memberships cover a paid newsletter or course without a marketplace take-rate. You still pay Stripe or PayPal — that is the card network, not a storefront tax.
Replaces
Gumroad
Estimated SaaS saved
$1,200
per year, small team, before lock-in
Start on RailwayMedusa if this is a full store, not a file or membership
Placeholder: WooCommerce + MySQL for downloads, or Ghost + MySQL for memberships. SMTP via Resend. Shopify-shaped stores stay on /stacks/medusa-commerce.
The stack
- WooCommerce
GPL shop; digital downloads on WordPress
- Ghost
MIT publishing plus paid memberships
Cost table
| You stop paying | Typical / year | Self-host instead |
|---|---|---|
| Gumroad take-rate (small creator) | $1,200 | WooCommerce or Ghost + Stripe |
Agent setup prompt
Replace Gumroad with WooCommerce (digital downloads) or Ghost (paid memberships). - WooCommerce: WordPress + MySQL + a volume for files. Ghost: MySQL, members, Resend on send. - One product, one test purchase, one download or member login. You still use Stripe or PayPal. - Write AGENT_PROMPT.md. Do not promise Gumroad Discover or merchant-of-record tax handling you have not rebuilt.
Also as markdown: /stacks/woocommerce-digital.md
FAQ
- WooCommerce or Ghost?
- WooCommerce if you sell a file, a license, or a bundle. Ghost if the product is a paid publication. A full storefront is /replace/shopify.
- Who handles sales tax?
- Gumroad is a merchant of record. Self-hosting is not. Stripe Tax or your accountant covers that — do not pretend the CMS does.