Storefront — an open-source store your agent builds, with SKU.io running everything behind it
Every online store we have run sat on a CMS: an admin login, a stack of plugins and a theme, each one something to patch, defend and pay for. Stores are built differently now. A coding agent can write any design you can describe, so the store doesn't need a screen for a person to click through. It needs a standard, an API, and the freedom to look like anything. So we built one. Storefront is our open-source store kit, with no CMS in the middle, and starting today SKU.io connects to a Storefront store as a sales channel. Orders flow in, and stock, tracking and products flow back out, with no plugins and no keys to copy.
✨ What this means for you:
- A store with nothing to log into and nothing to patch. No admin panel, no plugins, no theme marketplace, and no monthly platform fee. The kit is MIT-licensed.
- Any design you can describe. Your coding agent builds the look on the same proven store core: cart, checkout, accounts and discounts.
- Connected in a minute. Enter the store's address, approve SKU.io as the store's owner, and you're done.
- Operations from day one. Orders arrive as SKU.io sales orders every five minutes. Tracking goes back the moment you ship, and the store emails the buyer.
- Stock that stays honest. SKU.io sends the store its available stock every 15 minutes, from the warehouses you choose.
- Your data stays yours. The store keeps the whole order in plain SQL that you can export whole.
Why we built it
We wanted our own stores off WooCommerce and onto something an agent could build, with no CMS to log into. We looked hard at WooCommerce, Medusa, Bagisto and headless Shopify. Each was good at something, but none was built for that.
So Storefront takes the CMS out. Content and design live in git. What's left is small: a catalog, checkout, orders, buyer accounts, and adapters for payments and mail, shipped as one npm package that updates underneath you. The design is copied into your repo, where your agent can reshape it however you like. Every store ships with a note to the agent naming the one test that must always pass: checkout still works.
It runs where you want it: on Cloudflare Workers with D1, or on any Node server with a SQLite file. It takes payments through Stripe, PayPal, BTCPay, on-chain bitcoin, or pay later.
Fewer doors also means less to defend:
- The browser never sends a price; the server prices every line.
- Card numbers never touch the store.
- Buyers sign in with a single-use emailed link, so there are no buyer passwords to steal.
- The API that SKU.io uses has no way to create an order, so a leaked key can't invent a sale.
One small contract between the store and SKU.io
The store keeps the whole order. Your operations system reads it and pushes the truth back, over a public Store API of just five calls: read new orders, write your order number back, send tracking, send stock, and (optionally) send products. SKU.io is the first system on it, and it uses no private hooks. Any ERP, or even an automation workflow, can connect the same way.
Connect in a minute, with no keys to copy
Under Apps & Integrations → Storefront, enter your store's address. SKU.io sends you to the store, you sign in as its owner, and the store shows exactly what SKU.io will be allowed to do. Click Approve, and the store issues SKU.io a key of its own. You never see it or paste it, and the owner can revoke it at any time from the store's Connections page.

Orders in, tracking out
Every five minutes, SKU.io reads the store's new and changed orders and turns each paid one into a SKU.io sales order. That includes the customer, shipping, tax, discount and payment. It writes the sales order number back to the store, so both sides show the same reference. Cancellations and payments flow both ways.
When you ship, SKU.io sends the carrier and tracking number to the store as soon as the fulfillment records them, and the store emails the buyer. If a product on an order isn't matched to a SKU.io product yet, you can hold the order until you map it.

Stock that stays in step, and a catalog you choose who owns
SKU.io sends the store its available stock for every SKU that changed, every 15 minutes. You choose which warehouses count. The Inventory tab shows what SKU.io would send, what the store was last told, and the difference, with Push changes to send it now.
If SKU.io owns your catalog, it can also push products, categories and prices to the store, by hand or every hour. If the store's own team looks after its products, leave product push off and SKU.io just matches the store's catalog to your products by SKU.

Already running real stores
The same core already runs very different shops. One is a single-product, bitcoin-friendly store. Another is a 181-product catalog moved off WooCommerce with its old URLs kept, with SKU.io driving its stock and shipments. See them on the Storefront site.
Where to find it
- Start a store: sku.io/storefront has the quick start (
npx @skuio/cli create my-store), the Store API spec and the source on GitHub. - Connect it to SKU.io: Apps & Integrations → All Integrations → Storefront, then Connect Storefront.
- Full guide: Storefront integration guides, covering connecting, choosing what syncs, mapping products, orders and tracking, stock, and troubleshooting.