Elements vs Shopify

Markdown

Shopify is a hosted commerce platform made by Shopify Inc. A merchant builds a storefront from a theme, lists products with variants and photos, and sells through Shopify's checkout online, in person with Shopify POS, and through sales channels such as the Shop app. Shopify runs the hosting, the checkout and the payments, sells discounted shipping labels, and offers an App Store of more than 21,000 apps for the jobs the core product leaves out, such as reviews, subscriptions and email marketing. Shopify charges a monthly plan fee, lower when billed yearly, and a card fee on online payments through Shopify Payments, with an added fee when a store uses another payment provider (pricing). Apps bill separately, some through Shopify and some outside it.

Elements is not a commerce platform. It is an integrated app environment for building web apps with an AI agent, and it includes the parts an online store is made of: a Postgres database for products, orders and customers, pages rendered on the server, sign-in, email templates sent through an SMTP provider such as Postmark, background jobs, live stock counts, and Stripe Checkout for one-time payments and subscriptions. Combined with Stripe Billing, Stripe Tax and Radar, that covers most of the commerce plumbing a small store uses.

On Shopify, the store, the checkout and each app are rented, and the monthly cost is the plan plus every app the store adds. A store you build is one bill that does not grow with each app you add, and the newsletter, the subscriptions and the customer list are tables beside the orders. What you give up is Shopify's point of sale, its shipping labels, its app and theme ecosystem, and a platform someone else keeps running. For a lean store on free app tiers, Shopify costs less.

What Shopify Gives You That Is Hard to Build

Shopify is a mature commerce platform, and some of what it does, an app you build cannot match.

  • Point of sale. Every paid plan includes casual in-person selling with a phone or tablet and a Shopify card reader, and POS Pro adds retail features for a monthly fee per location. In-person sales and online sales share one inventory. An app you build sells on the web.
  • Shipping labels. Shopify sells discounted labels from inside the admin (pricing). An app you build records a tracking number; buying the label happens somewhere else.
  • The app ecosystem. When a store needs loyalty points, a wholesale portal or a print-on-demand integration, it installs one of more than 21,000 apps. In your own app, each of those is a feature someone has to build and maintain.
  • Themes. A merchant picks a theme and edits it visually, without code. Paid themes are a one-time purchase, and free themes are available.
  • Shop Pay and sales channels. Buyers who have saved their details with Shop Pay check out in a few taps, and Shopify lists products on sales channels such as the Shop app.
  • No upkeep. Shopify hosts the store, keeps checkout running during a sale and ships new features. Run your own store and those jobs move to you, with an agent taking much of the work.

What Building It Looks Like

A small online store is a set of parts: products, a cart, checkout, orders, email and a dashboard. Where each Shopify feature, and each app, goes:

Shopify feature In an app you build with Elements
Storefront with collections, products, variants and photos Pages in Elements HTML, rendered on the server, with products in your Postgres database and photos uploaded through a form (html, database, file upload recipe)
Cart and checkout Stripe Checkout, a payment page Stripe hosts, so card numbers never touch your app
Order confirmation and shipping emails A job that sends each confirmation and tracking email, written in Elements HTML, through Postmark or another SMTP provider (email, jobs)
Live stock and new orders in the admin A LiveTable that updates every open browser as orders arrive (livetable)
Subscriptions, such as a monthly coffee delivery (a subscriptions app) Stripe Checkout in subscription mode, with Stripe Billing retrying failed cards and each subscription's status kept in your database (subscriptions)
Subscribers change a card or cancel Cancel from your app (subscriptions), and Stripe's customer portal for cards
Customer accounts and order history Sign-in and sessions, with customers as rows in your own database (authentication recipe)
Admin pages for products and orders Role-gated admin pages (admin roles recipe)
Sales dashboard Revenue, orders and top products, recalculated by a job and pushed live to the owner's screen (live dashboard recipe)
Reviews (a reviews app) A reviews table in the same database, shown on each product page (database)
Email marketing (an email app) Campaigns sent from email templates to the customers already in your database (email, jobs)
Sales tax Stripe Tax, charged at checkout in the states and countries where you are registered
Fraud screening Stripe Radar
Point of sale, shipping labels, Shop Pay, sales channels, the App Store and the theme editor No equivalent. These stay with Shopify.

Checkout, Billing, Tax and Radar are each priced separately by Stripe, at stripe.com/pricing. Because the store, the subscriptions and the newsletter are tables in the same database, a one-time buyer, a monthly subscriber and a newsletter reader are the same kind of row, in one list of customers, with no sync between apps.

The Demo: Millrow

Millrow is an online store for a small coffee roaster, built with Elements by an AI agent from one prompt. Shoppers browse coffee by collection, pick a bag size and grind, each with its own price and stock, and check out as a guest by card. They get an order confirmation email, and another with a tracking number when the order ships. The owner manages products, variants, photos and stock, marks orders shipped, and watches revenue, orders and top products on a dashboard, with stock and new orders updating live.

Millrow takes one-time payments; it does not sell subscriptions. Letterhearth shows recurring billing by card, with upgrade and cancel, and the two patterns can live in one app. Both prompts are on their demo pages, and your agent can build either one locally as the start of your own store.

Adding It Up

This is an example, not a customer. A small coffee roaster sells bags online, has a list of coffee subscribers and emails its customers. On Shopify it pays for a plan and the apps a subscription store needs, such as these well-rated App Store listings:

Subscription How it charges
Shopify By plan, billed monthly or yearly
Appstle subscriptions By plan
Judge.me reviews By plan
Klaviyo email By plan and number of contacts
ReConvert upsells By plan
Bundler bundles By plan

Shopify's own Subscriptions app is free, and many stores pay for few apps or none; an analysis of Store Leads data found most Shopify stores show no tracked paid-app spend.

Your own store costs $100 a month for Elements, plus a server (DigitalOcean pricing) and an email provider for the order emails (Postmark pricing). Card fees apply either way: Shopify Payments and Stripe both charge a fee on each online card payment (Stripe pricing). Stripe Billing adds a fee on recurring charges (pricing). Against a lean stack of a basic plan and inexpensive or free apps, Shopify usually costs less.

The comparison changes with the apps a store picks. Brand-name apps tend to cost more, and some charge by sale as well as by plan: Recharge charges a monthly plan plus a fee on each subscription renewal, and Loox charges for reviews by plan. A fee on each renewal grows with every subscriber, while Elements' cost does not. Add up the apps your store pays for, at the plans you are on, including fees that grow with sales. If you also pay for a newsletter or a CRM outside the store, count those too, since they become tables in the same app. The subscriptions overview works through other cases.

When to Keep Shopify

  • Your store runs on free tiers. Shopify Basic with free apps costs less than running your own app, and nothing here beats it.
  • You sell in person. Shopify POS ties your counter and your website to one inventory, and an app you build does not do that.
  • You ship a lot of orders. Discounted labels in the admin save real time and money.
  • You rely on apps you would have to rebuild. If your store depends on several specialized apps, each one is work to replace.
  • You would rather not run software. Shopify does the upkeep.

Questions

How does Shopify charge?

Shopify sells monthly plans, lower when billed yearly, and charges a card fee on online payments through Shopify Payments. Its rates are at shopify.com/pricing. Apps for subscriptions, reviews and email are billed separately.

How much does a Shopify subscription store spend on apps?

It depends on the apps. Each app charges by its own plan, and some, such as Recharge for subscriptions, add a fee on each renewal. Many stores use free tiers and pay less. Add up the apps at the plans you are on, from each app's listing or pricing page.

Can an Elements app handle payments, subscriptions and sales tax?

Yes, with Stripe. Elements apps take payments through Stripe Checkout, including subscriptions. Stripe Billing handles recurring charges and failed-card retries, the customer portal lets customers update a card or cancel, Stripe Tax calculates and collects tax where you are registered, and Radar screens for fraud. Stripe's fees are at stripe.com/pricing.

Does an Elements store have point of sale or shipping labels?

No. An Elements app is a website. Shopify's POS for in-person sales and its discounted shipping labels have no equivalent in an app you build; you would record tracking numbers from a carrier or label service you use separately.

When does building my own store make sense?

When the plan and apps you pay for add up to more than running your own app: Elements at $100 a month, a server, an email provider and Stripe Billing's fee on subscriptions, and you do not depend on POS or the App Store. It helps most when the store, the newsletter and the customer list can be one app. The build or buy overview at /vs/subscriptions walks through how to add it up.