Total cost of ownership: this build vs Shopify
Emerging Art runs on a single Hetzner CAX21 instance with our in-house dev retainer covering ongoing patching, deploys, monitoring, and support — modelled here over its first year of trading, against an equivalent Shopify Advanced setup.
Going with a custom payment provider has allowed us to achieve a revenue rate of 1.73% vs a blended-rate of 3.6% with Shopify due to their penalties on 3rd party providers.
Medusa (self-hosted)
- Hetzner + Medusa (incl. in-house dev retainer)Hetzner CAX21 (EUR11/mo), Interchange-Plus card-processing (~2.1% of revenue, South Africa’s SARB-regulated card-not-present interchange), and our in-house dev retainer at R7,500/month covering ongoing patching, deploys, monitoring, and support.
Shopify
- Shopify (incl. maintenance + 3rd-party payment surcharge)Shopify Advanced plan plus SEO, reviews, and localization apps, a 3rd-party South African payment gateway (~3.0% of revenue) since Shopify Payments isn't available here, roughly 4hrs/month of maintenance labor at R1403/hr, and the Advanced plan's extra 0.6% transaction surcharge applying to 100% of GMV.
| Month | Hetzner + Medusa (incl. in-house dev retainer) | Shopify (incl. maintenance + 3rd-party payment surcharge) |
|---|---|---|
| Mo 1 | R12 153 | R18 678 |
| Mo 2 | R13 508 | R21 248 |
| Mo 3 | R14 862 | R23 801 |
| Mo 4 | R16 217 | R26 370 |
| Mo 5 | R17 571 | R28 923 |
| Mo 6 | R18 926 | R31 493 |
| Mo 7 | R20 280 | R34 046 |
| Mo 8 | R21 635 | R36 615 |
| Mo 9 | R22 989 | R39 168 |
| Mo 10 | R24 344 | R41 738 |
| Mo 11 | R25 698 | R44 291 |
| Mo 12 | R27 053 | R46 860 |
The best case scores with Shopify stores is generally 65 - 85.
Every screen designed from a blank canvas for this store. No theme template was used.
Next.js frontend built with design tokens and Storybook. Every 100ms of latency costs the average Shopify store roughly 7% in sales, directly contributing to revenue.
Self-hosted payment integration with only the gateway’s own rate. Shopify charges an extra fee on top of your payment provider unless you use Shopify Payments.
Automatic country detection, with same-day currency calculations. Currency switching comes included rather than sold as an add-on for a store selling to collectors worldwide.
Accessibility audits and other techniques ensure compliance ensuring that all customers are catered for.
Self-hosted infrastructure and a codebase that belongs to the business. No vendor lock-in, no export limits, and no limits to growth and scaling.
Medusa.js, PostgreSQL, Next.js, and Redis (Valkey) at it's core, support from Coolify, Terraform (OpenTofu) and Docker mean that your your pricing is a simple equation, and your solution is portable.
New integrations and modules get written directly into the codebase, not added as a third-party app with its own fee and flaky integration.
- Custom design + Design system
- Headless Next.js storefront
- Admin dashboard
- CI/CD deploy pipeline