Comparison 11 min read

Self-Hosted vs SaaS for SMB E-Commerce: When Each Pays Off

Every few months a merchant asks the same version of the same question. They are on Shopify, the bill went up again, they read a thread on X about someone saving $180,000 a year by moving to a self-hosted stack, and they want to know if the math would work for them. Some of them should move. Most of them should not. The difference is almost never about the merchant's opinion of Shopify or their taste in stacks. It is about a small number of variables that fall out of a real TCO model.

The self-hosted vs SaaS decision for SMB e-commerce is not a religious argument once you actually run the numbers. It is a break-even calculation with three levers: your GMV, your payment processing rate, and the amount of custom work your ops actually needs. Everything else is either a rounding error or a hidden cost that will show up on month four of the migration.

This piece runs the ecommerce TCO math at three real GMV bands: $500k, $5M, and $30M. It covers the fee structure that determines the answer, the migration cost that determines whether the answer is achievable, and the honest signals that mean self-hosted actually pays off. There is a Shopify alternative self-hosted stack that makes sense for a specific kind of merchant, and there is a merchant profile where staying on Shopify is the correct call even at $20M in GMV.

What "self-hosted" actually means in 2026

Self-hosted e-commerce has three shapes today, and lumping them together is where most TCO estimates go wrong.

The first is WooCommerce on managed WordPress hosting. This is still the dominant SMB self-hosted stack by store count. The infrastructure is Kinsta, WP Engine, Cloudways, or Pressable. The store owner controls the site but does not touch the server. Plugins fill the feature gap between core WooCommerce and what a real merchant needs, and the plugin ecosystem is the biggest strength and the biggest liability of this stack.

The second is headless commerce with an open-source engine plus a custom storefront. Medusa, Saleor, and Vendure are the leading engines in 2026. The storefront is usually Next.js, Remix, or Astro. This shape gives merchants full control of the customer experience and API surface, and it is the choice for anyone whose product experience is a real competitive advantage. It also has the highest engineering cost, and merchants who pick it without a technical partner or in-house team almost always regret it inside twelve months.

The third is Adobe Commerce (formerly Magento) on the open-source tier, still running at the larger end of SMB and lower mid-market. Magento's reputation for being heavy is not wrong, but the 2.4 line and the improvements Adobe funded before the Adobe Commerce split have made it more manageable than it was in 2018. It remains overkill for anyone under $3M GMV.

SaaS in this comparison means Shopify (Basic, Grow, Advanced, and Plus), BigCommerce (Standard, Plus, Pro, Enterprise), and Wix Commerce. Shopify is the anchor because it is what SMB merchants actually run and what the "should I leave" question is almost always about. The numbers here use Shopify's July 2026 pricing structure, which shifted again in the spring, and the analysis holds directionally for BigCommerce with slightly different absolute numbers.

The five cost buckets that decide everything

An ecommerce TCO model that only counts the platform subscription is why merchants get surprised when they migrate. There are five real cost buckets, and self-hosted vs SaaS shift the weight between them rather than eliminating any of them.

Platform or hosting. Shopify Basic is $39 per month in 2026, Grow is $105, Advanced is $399, and Plus starts at a $2,500 monthly minimum with volume-based escalation. BigCommerce is similar with slight differences at the mid-tier. Self-hosted hosting runs $60 to $200 per month for a small WooCommerce store, $250 to $900 for a Medusa or Saleor headless stack with a real production database and CDN, and $1,200 to $4,000 for a Magento install that actually performs. Add DNS, email deliverability, and monitoring at $50 to $250 per month across most stacks.

Payment processing. This is the bucket almost every self-hosted TCO estimate underweights. Shopify Payments charges roughly 2.4 percent to 2.9 percent plus $0.30 per transaction depending on plan, and if a merchant uses a non-Shopify processor Shopify tacks on an additional 0.5 percent to 2 percent as a platform tax. On self-hosted, Stripe is 2.9 percent plus $0.30, and negotiated rates start being available around $5M in volume where merchants can get to 2.4 percent to 2.6 percent plus $0.15 to $0.20 with the right processor. This is where the real GMV savings live at higher volumes, not in the subscription line.

Apps and extensions. The Shopify App Store bill is the silent budget item at every GMV band. At $500k GMV, most stores run 8 to 14 paid apps: reviews, email or SMS marketing, subscriptions, shipping, upsell, loyalty, page builder, a CRO tool. Median monthly app spend at that band is $350 to $900. At $5M GMV, app count climbs to 15 to 25 and monthly spend runs $1,200 to $3,800. At $30M GMV, app spend often crosses $6,000 per month with enterprise-tier reviews platforms, dedicated ESP, subscription infrastructure, and a headless commerce accelerator on top of Shopify Plus. Self-hosted stacks replace apps with plugins (WooCommerce), extensions (Magento), or code (headless), and the cost shifts from monthly subscriptions to one-time developer time and a smaller ongoing maintenance line.

Engineering and maintenance. This is the bucket SaaS advocates point to when they say self-hosting is a hidden tax. They are correct that it exists. A WooCommerce store at $500k GMV needs 3 to 6 hours per month of developer or agency time, mostly for plugin update conflicts, WordPress core updates, and the occasional cache issue. A headless Medusa or Saleor stack at the same GMV needs 8 to 20 hours per month because the storefront is custom code that someone has to own. Magento at $500k GMV is not a serious option and needs to be scoped past $3M. The hourly rate matters: an offshore or agency retainer at $75 to $120 per hour behaves very differently in the model than a $180-per-hour senior contractor.

Migration cost, amortized. The line every "just switch to self-hosted" argument leaves out. Moving from Shopify to WooCommerce costs $8,000 to $30,000 for a typical $500k to $2M store, depending on catalog complexity, integrations, and how much the storefront design matters. Moving to a headless Medusa or Saleor stack is $40,000 to $180,000 with a real design and integration scope. Moving to Magento is $70,000 to $250,000 for a small merchant. Amortize this over the two or three years the merchant is likely to stay on the new stack and it belongs in the annual TCO. Skipping this line is how a merchant convinces themselves they will save $50,000 a year and then finds out they need three years to recover the migration cost before that saving is real.

TCO at $500k GMV

A $500k GMV merchant on Shopify Basic or Grow is the archetype for "should I leave." The numbers say almost universally no.

Shopify at $500k GMV, honest total. Grow plan at $105 per month is $1,260 per year. Payment processing on Shopify Payments at a blended 2.7 percent averages $13,500 per year. Apps at $600 per month average is $7,200 per year. Theme, design touch-ups, and occasional dev work runs $2,500 to $6,000 per year for a store that cares about its presentation. Total: $24,500 to $28,000 per year, or 4.9 to 5.6 percent of GMV.

Self-hosted WooCommerce at $500k GMV, honest total. Hosting at Kinsta Business or WP Engine Growth tier is $2,400 to $3,900 per year. Payment processing through Stripe or Braintree at 2.9 percent standard is $14,500 per year (slightly higher than Shopify because SMB merchants at $500k typically do not have negotiated rates yet). Paid plugins for the equivalent feature set run $1,800 to $3,600 per year. Agency or freelance maintenance at 4 hours per month at $110 per hour is $5,280 per year. Amortized migration cost over three years on a $12,000 migration is $4,000 per year. Total: $28,000 to $31,300 per year, or 5.6 to 6.3 percent of GMV.

Self-hosted costs more at this band, not less. This is the single most important sentence in the piece for merchants under $1M GMV, and it is the opposite of the story on Reddit. The reason is that payment processing rates are almost identical at this volume, the app-vs-plugin cost delta is small, and the engineering line eats whatever savings the subscription line produces.

The exceptions matter. A merchant at $500k GMV with an in-house technical founder who codes the maintenance themselves for free can cut $5,000 per year off the self-hosted line and get to roughly break-even with Shopify. A merchant selling something that requires a fundamentally custom checkout (regulated products, complex configurators, B2B quote-to-order flows) can be blocked on Shopify and forced onto self-hosted regardless of the TCO answer. A merchant who wants full ownership of customer data for reasons a Shopify plan cannot satisfy (privacy law, first-party data strategy, an owned CDP) has a strategic argument that overrides pure cost.

Absent those specific reasons, a $500k GMV merchant should stay on Shopify. The savings do not exist, and the migration risk (broken redirects, SEO regression, integration downtime, checkout conversion drop during cutover) is real cash cost that dwarfs any theoretical infrastructure saving.

TCO at $5M GMV

The $5M GMV band is where the math starts to move. This is the segment where the "should we leave Shopify" conversation gets serious inside real merchant teams, and where the answer stops being an automatic no.

Shopify at $5M GMV, honest total. Advanced plan at $399 per month is $4,788 per year, and merchants at this size often move to Shopify Plus at $2,500 per month minimum, which is $30,000 per year. Payment processing on Shopify Payments at a negotiated blended 2.5 percent is $125,000 per year. Apps at $2,200 per month average is $26,400 per year. Custom theme, ongoing design work, and Shopify Plus development at $18,000 to $40,000 per year. Total on the Advanced plan: roughly $174,000 to $196,000 per year (3.5 to 3.9 percent of GMV). Total on Plus: roughly $199,000 to $221,000 per year (4.0 to 4.4 percent of GMV).

Self-hosted WooCommerce or headless at $5M GMV, honest total. Hosting on a production-grade tier (Kinsta Enterprise, WP Engine E-commerce, or a properly tuned Vercel plus managed Postgres for headless) is $12,000 to $30,000 per year. Payment processing through Stripe or a negotiated processor at 2.5 percent is $125,000 per year (rate parity with Shopify at this volume, and often better with a well-chosen processor). Paid plugins or extensions at $6,000 to $14,000 per year. Engineering retainer at 15 hours per month at $130 per hour is $23,400 per year, or higher for a headless stack running $50,000 to $100,000. Amortized migration cost over three years on a $60,000 migration is $20,000 per year. Total on WooCommerce: $186,000 to $212,000 per year (3.7 to 4.2 percent of GMV). Total on Medusa or Saleor headless: $232,000 to $299,000 per year (4.6 to 6.0 percent of GMV).

At $5M GMV, WooCommerce is roughly break-even with Shopify Plus. Headless is more expensive unless the merchant has a specific reason to pay for custom UX. Shopify Advanced (not Plus) is often the cheapest option in absolute dollars, and merchants who jumped to Plus before they needed the features are paying $20,000 to $30,000 per year for capabilities they do not use.

The real move at $5M GMV is not "leave Shopify" but "figure out whether we need Plus at all." Most merchants at this band do not, and the meaningful TCO win is downgrading rather than migrating. If a merchant is on Plus, uses maybe two Plus-specific features, and could achieve the same outcomes on Advanced with a well-scoped custom checkout extension or a headless storefront frontend on top of the Shopify backend, they can save $25,000 per year without moving off Shopify at all.

The exception is a $5M GMV merchant with a complex operations stack. If the merchant is running custom fulfillment logic, B2B pricing rules, EDI integrations with big-box retail partners, or multi-region inventory that Shopify's routing engine cannot handle without extensive customization, self-hosted often becomes the correct answer even at break-even TCO because the ops flexibility is a real business enabler. This is the band where "self-hosted pays off" starts being true for merchants whose product complexity exceeds what packaged SaaS is designed for.

TCO at $30M GMV

At $30M GMV, the payment processing bucket dominates every other line, and this is where a Shopify alternative self-hosted stack starts paying off in absolute dollars for the profile of merchant who has the operational maturity to run it.

Shopify Plus at $30M GMV, honest total. Plus subscription escalates with volume and typically lands at $3,500 to $7,000 per month at this band, or $42,000 to $84,000 per year. Payment processing on Shopify Payments at a negotiated 2.3 percent blended rate is $690,000 per year. Apps and enterprise integrations at $7,500 per month average is $90,000 per year. Custom Plus development, agency retainer, and Shopify Plus partner fees at $80,000 to $200,000 per year. Total: roughly $902,000 to $1,064,000 per year (3.0 to 3.5 percent of GMV).

Self-hosted headless (Medusa, Saleor, or Magento) at $30M GMV, honest total. Hosting on production infrastructure with proper redundancy, read replicas, CDN, and monitoring is $60,000 to $140,000 per year. Payment processing through a negotiated processor at 2.15 percent is $645,000 per year. Ongoing engineering as a small in-house team or dedicated agency retainer at $180,000 to $400,000 per year. Third-party services (ESP at enterprise tier, CDP, warehouse integration, review platform) at $60,000 to $130,000 per year. Amortized migration cost over three years on a $180,000 to $350,000 migration is $60,000 to $117,000 per year. Total: roughly $1,005,000 to $1,432,000 per year (3.4 to 4.8 percent of GMV).

On paper, Shopify Plus is still cheaper in absolute dollars at $30M GMV for a merchant whose product does not require deep customization. The processing rate difference is real but not enough to cover the higher engineering cost of running a self-hosted stack.

Where self-hosted actually pays off at this band is when the merchant has operational or product complexity that Shopify cannot serve efficiently. A merchant with 3,000 SKUs across four warehouses, dynamic pricing by customer segment, retail EDI, an owned mobile app, and a real content strategy running through their storefront often ends up with a headless stack because packaged SaaS cannot deliver those requirements without so much custom work that the "SaaS" label becomes cosmetic. In that scenario, the extra $200,000 in engineering cost is buying capabilities that are worth $500,000 or more in revenue lift, and the TCO number stops being the right frame.

The merchants who leave Shopify at $30M GMV and are right about it are almost always merchants whose product experience is a competitive moat. The merchants who leave and are wrong about it are usually merchants who read a case study about Kith or Allbirds and thought the answer would generalize. It does not. Most $30M GMV Shopify Plus merchants should stay on Shopify Plus and invest the equivalent of the migration budget in growth instead.

The migration cost math nobody wants to run

The single line item that decides whether a self-hosted move is a good idea is the migration cost, and the reason merchants underestimate it is that the visible parts (the platform build, the theme port, the data import) are only 40 to 60 percent of the real bill.

The hidden parts are the integrations. A $2M Shopify store typically has 8 to 12 external integrations: ESP, review platform, subscription tool, shipping app with rates and label printing, accounting sync, ERP or inventory system, tax service, CDP, fraud detection, and often a helpdesk or ticketing tool that reads order data. Each of these has to be reconnected on the new stack, and each of them has a Shopify-native app and a self-hosted equivalent that behaves differently. Roughly 30 to 50 percent of the migration budget goes here, and this is the line item that slips the timeline.

SEO is the other hidden cost. A well-executed Shopify-to-self-hosted migration with proper 301 redirects, sitemap regeneration, structured data preservation, and canonical URL handling loses 5 to 15 percent of organic traffic for two to four months before recovering. A poorly executed migration loses 30 to 50 percent and may never fully recover. For a merchant with meaningful organic traffic, this is a real cash cost. A store getting 40 percent of revenue from organic search and losing 20 percent of that traffic during the migration is losing 8 percent of revenue for a quarter, which at $2M GMV is $40,000 of contribution margin gone.

Checkout conversion is the third one. Shopify's checkout is genuinely well-optimized and has been iterated on with more traffic than any other checkout in the world. Any custom checkout on any self-hosted stack will start behind that baseline and take months of optimization to catch up. A 5 percent checkout conversion drop from cutover, held for two months before parity, on a merchant doing $500k per month, is $50,000 of revenue that never materialized. Every migration budget should include a checkout parity line.

Add these three (integration rework, SEO recovery, checkout parity) to the surface migration cost and the real project number for a serious Shopify-to-self-hosted move is 1.6x to 2.2x the vendor quote. Merchants who scope with a partner that includes these explicitly rarely regret the migration. Merchants who take the cheapest quote and treat the hidden costs as "we will figure it out" almost always end up over budget and behind schedule.

Where SaaS genuinely wins

The honest case for staying on Shopify is stronger than most self-hosted advocates admit, and it is worth stating directly.

Checkout conversion. Shopify's checkout, Shop Pay, and the accelerated payment integrations are objectively better than anything a self-hosted stack ships out of the box. The conversion gap is 3 to 8 percent for merchants without a dedicated checkout engineering effort, and that gap compounds every day.

Operational reliability. Shopify handles Black Friday traffic without the merchant thinking about it. A self-hosted stack handles Black Friday traffic if the merchant provisioned for it, tested the load, and has a plan for when the CDN misbehaves. The failure mode of "site down during peak" is a business event that most SMB merchants are not equipped to absorb.

Ecosystem integration. Every meaningful SaaS tool in commerce has a native Shopify integration and treats it as a first-class platform. Self-hosted stacks get supported but not prioritized. A merchant using Klaviyo, Recharge, Gorgias, and Loop should think hard about whether the polish gap on integrations is worth trading for infrastructure savings.

Feature velocity. Shopify ships new features quarterly and merchants get them for free. Self-hosted merchants get whatever their engineering team or agency builds. The pace differential compounds over years, and merchants who left Shopify in 2022 have watched features they now want (Shop Pay Installments, native B2B, Markets for cross-border, new checkout extensibility) show up on Shopify without them.

If a merchant does not have a specific competitive reason to be on self-hosted, Shopify is a defensible default at every GMV band up to and often past $50M. This is uncomfortable to admit for anyone who bills for migrations, and it is honest.

Where self-hosted genuinely wins

The case for self-hosted is real when specific conditions apply, and it is worth being direct about which ones.

Custom checkout or purchase flow. Merchants selling regulated products (alcohol with age gates, cannabis, firearms, prescription lenses), configurable products (customized jewelry, made-to-order furniture, print-on-demand with complex options), or B2B quote flows often hit the ceiling of what Shopify's checkout can do. Self-hosted lets them own the flow end to end.

Deep operations integration. Merchants running an ERP as the source of truth, custom warehouse logic across multiple facilities, EDI with big-box retail, or dynamic pricing rules by customer segment usually find self-hosted cheaper than the Shopify Plus custom development required to graft the same behavior on.

Product experience as a competitive moat. Brands where the storefront is part of the product (luxury, high-design DTC, community-heavy brands with content and commerce integrated) benefit from headless self-hosted because they can build what they need rather than what a theme allows.

First-party data as a strategic priority. Merchants building a real CDP-driven strategy, owning customer data across channels, or operating in a regulatory environment where data residency matters have an argument for self-hosted that TCO alone does not capture.

An engineering team that already exists. If a merchant has in-house engineers or a long-term agency partner, the engineering cost of self-hosted is close to zero at the margin because the team exists anyway. This flips the TCO math for merchants who are otherwise borderline.

The decision framework

Four questions determine the right call, and the answers weight differently at different GMV bands.

First, does your product require a custom checkout or purchase flow that Shopify cannot serve without heavy customization? If yes, self-hosted at any GMV band. If no, this is not a reason to leave.

Second, does your operations stack (ERP, WMS, EDI, pricing, multi-region inventory) require deep integration that Shopify apps cannot deliver cleanly? At $500k GMV this is rare. At $5M and above it is common enough to be a serious factor.

Third, do you have an in-house engineering resource or a durable agency partner who can own the stack for the next three years? If no, self-hosted will cost more than the model predicts because the engineering line will not stay contained. If yes, the TCO model runs more favorably.

Fourth, is the migration cost recoverable within 24 months against the projected annual savings? Run this number honestly, including the hidden migration costs (integration rework, SEO recovery, checkout parity). If it does not clear 24 months, do not migrate. The market moves too fast to lock in a two-year payback for infrastructure savings.

The merchants who ask "should I leave Shopify" and get told "not yet" often push back and want a more exciting answer. There isn't one. Ecommerce TCO is boring math, and the boring math says most SMB merchants under $3M GMV should stay on SaaS, most merchants between $3M and $10M should audit whether they need Plus, and most merchants above $10M should evaluate self-hosted seriously only if they have a specific product or operations reason to move. The Shopify alternative self-hosted move is real for a specific merchant profile. It is not real for the merchant who saw a case study and wants the same headline.

Want the TCO model for your specific store?

We build and migrate self-hosted commerce stacks (WooCommerce, Medusa, Saleor, Magento) for SMB merchants between $500k and $50M GMV, and we also tell merchants when the migration will not pay back and they should stay on Shopify. If you want a no-pitch TCO model of your projected 24-month cost on your current stack against two realistic self-hosted alternatives, using your real GMV, processing rates, and integration list, get in touch.

Get a self-hosted vs SaaS TCO analysis