Skip to content

Self-hosted commerce

The commerce platform you actually own.

It runs on your server. No monthly fee, no cut of your sales, nobody reading your customers’ data. And four things you cannot buy from Shopify at any price.

Yours, on your server. One command with Docker, then a six-step wizard.

Four things you cannot get anywhere else.

Not with a plugin, not with a paid tier, not in 2026. Each one is in the code today — and the proof is written underneath it.

You already have a shop. That is the first problem we solve.

Nobody starts from zero. You are on Shopify or WooCommerce, you have a catalogue that works and, above all, you have positions on Google that took years. Changing platform is not a technical decision: it is deciding whether you are willing to lose that.

More than half of platform moves lose Google traffic, and almost always for the same reason: old URLs that stop existing without saying where they went. So we don't ask you to export anything: you connect your shop with read-only keys and it comes across on its own — catalogue, customers, SEO titles and the order history a CSV cannot carry.

How the move actually goes
  • Connect it, don't export it

    Read-only keys and it fetches the lot: catalogue, customers, orders, coupons, reviews and blog posts. No file to generate, nothing that comes out half-finished.

  • Try it with twenty first

    It brings twenty of each thing so you can see how your catalogue looks here. If you don't like it, one button undoes it — and tells you what it couldn't undo.

  • One 301 per old URL

    In nginx, Apache, JSON and CSV, downloadable before you import anything — because you need it before you touch the DNS. Your SEO titles come across too.

  • Run it again for what's new

    Days pass between migrating and switching DNS, and your old shop keeps selling. Run it again and only the new arrives. Nothing duplicates: not products, not customers, not history.

Counted in the source, not rounded up

  • 56admin screensacross 26 functional areas
  • 114API endpointspanel, storefront and agents
  • 10own modulesAI, reviews, support, marketplace…
  • 8theme stacksNext, Astro, Nuxt, SvelteKit, Remix…
  • 8AI providersone of them runs on your own machine
  • 1357checks in the test suitein 66 files, asserting money, not status codes

The whole table, including the parts we lose.

Every comparison table on the internet is written by the winner. This one ends with a section called what we do not have yet, because you are going to find that out on day one anyway — and it is cheaper for both of us if you find it out now.

What nobody else brings

Four things you cannot get from Shopify, WooCommerce or PrestaShop today — not with a plugin, not with a paid tier.

FeatureShopifyWooCommercePrestaShoppcreative
Sells through ChatGPT and Claude, checkout stays yoursYour catalogue speaks the agents' protocol: they search it and recommend with real price and stock, and the buy link always points at your site.Not availableNot availableNot availableBuilt in
EU AI Act Article 50 compliance built inEnforceable from 2 August 2026. Fines up to €15M or 3% of worldwide turnover. Notice in three languages, machine-readable header, and a record of having shown it — without storing a single personal datum.Not availableNot availableNot availableBuilt in
Themes in the stack of your choiceA theme is a website that talks to the store over HTTP. Eight stacks supported. The others tie you to their template language.Not availableNot availableNot availableBuilt in
AI with your own key and a spending capEight providers, including one that runs on your own machine at zero cost. The key never leaves your server, and the daily cap is in euros — not in requests, because a request has no fixed price.Not availableNot availableNot availableBuilt in

Where we are simply better

Others can do it — with plugins, with add-ons, or not at all in Spain.

FeatureShopifyWooCommercePrestaShoppcreative
Moving in from Shopify or WooCommerceEveryone imports a CSV. Here you connect the shop with read-only keys and it fetches the lot on its own — catalogue, customers, SEO titles, coupons, reviews, blog posts and the order history a CSV cannot carry. Orders come in as history: they move no stock, charge nothing and send no email. And you get what nobody hands you: one permanent redirect per old URL, in nginx, Apache, JSON and CSV, downloadable before you import anything, because you need it before you touch the DNS.Partial, or needs an add-onPartial, or needs an add-onPartial, or needs an add-onBuilt in
Customer consent survives the moveCustomers come over with their addresses, and only whoever said yes explicitly in the file arrives subscribed — blank, odd or missing is a no. If the same address appears twice and one row says yes and the other no, the no wins. What the file said is stored alongside, with the row it came from: a yes you cannot trace is worth nothing if anyone ever asks.Partial, or needs an add-onPartial, or needs an add-onPartial, or needs an add-onBuilt in
Card-free payments out of the boxThe five big card gateways are here too (Stripe, Adyen, Mollie, MONEI, PayPal). What is unusual is the rest: bank transfer, cash on delivery, Bizum and crypto on your own server. For sectors where the big gateways close accounts without warning, that is not a checkbox — it is being able to exist.Partial, or needs an add-onPartial, or needs an add-onPartial, or needs an add-onBuilt in
Spanish tax invoicingInvoice series, issuer and customer tax IDs, and VAT broken out of a VAT-inclusive price — which is how Spanish retail actually prices. Attached to the confirmation email automatically.Partial, or needs an add-onPartial, or needs an add-onBuilt inBuilt in
Barcode stock controlGoods in, goods out, full stocktake with differences, and binding a new barcode to a product without losing the scan.Partial, or needs an add-onPartial, or needs an add-onPartial, or needs an add-onBuilt in
Abandoned cart recoveryDetection, email and recovery rate are there; the automatic trigger is not — today it is sent by hand.Built inPartial, or needs an add-onPartial, or needs an add-onPartial, or needs an add-on
No commission per saleShopify charges a monthly fee AND a cut of every sale if you do not use their gateway. WooCommerce and PrestaShop do not charge commission either — this one is about Shopify.Not availableBuilt inBuilt inBuilt in

Where we hold our own

Table stakes. Nothing here is a reason to switch on its own.

FeatureShopifyWooCommercePrestaShoppcreative
Admin panelBuilt inBuilt inBuilt inBuilt in
Theme catalogueBuilt inBuilt inBuilt inBuilt in
Customise a theme without codeThe form is generated from what each theme declares, so it works the same whichever stack the theme is written in. Your settings live apart from the theme: updating it never overwrites them.Built inBuilt inBuilt inBuilt in
Visual page editorDrag and drop over the real storefront, with desktop/tablet/mobile preview — home page only for now.Built inBuilt inPartial, or needs an add-onPartial, or needs an add-on
Plugin APIA published list rather than open hooks: 9 events, 6 filters, 5 panel slots. What is on the list is a promise; removing it takes a major version.Built inBuilt inBuilt inBuilt in
Blog and contentBuilt inBuilt inBuilt inBuilt in
Several stores from one panelPartial, or needs an add-onPartial, or needs an add-onBuilt inBuilt in
Multi-currencyBuilt inPartial, or needs an add-onBuilt inPartial, or needs an add-on
Multi-language storefrontTwelve storefront sections translated, catalogue translated from the panel with your AI, and the main language keeps clean URLs. Until recently this row said «no»: it was in the list of what was missing.Partial, or needs an add-onPartial, or needs an add-onBuilt inBuilt in

What we do not have yet

Ordered by how much it hurts. You are going to find this out on day one anyway — better here than after you have paid.

FeatureShopifyWooCommercePrestaShoppcreative
Five-minute install on shared hostingThis needs a server with Docker. One command brings up the whole thing and a six-step wizard finishes the job — but it is not uploading a folder by FTP, and it never will be.Built inBuilt inBuilt inNot available
Extension marketplaceThe plugin contract exists and is tested. The shop to install them from does not.Built inBuilt inBuilt inNot available
Subscriptions and point of saleBuilt inPartial, or needs an add-onPartial, or needs an add-onNot available
Supplier cost and marginsUnder construction. Nobody in this table has it, and it is where the back office gets genuinely useful — real supplier cost, margin against recommended retail price.Not availableNot availableNot availableNot available
Managed hostingBuilt inNot availablePartial, or needs an add-onNot available
Built in Built inPartial, or needs an add-on Partial, or needs an add-onNot available Not available

It needs a server. We are not going to pretend otherwise.

WooCommerce installs in five minutes on any shared hosting because PHP is already running there. This is not that. It needs a machine with Docker — a €5 VPS is enough to start.

What we can promise is that from there it is one command, and then a wizard that shows you the real log instead of a fake progress bar, and puts a button to fix it next to each error instead of a code and a link to a forum.

How installing actually goes

The whole thing, one command

$ docker compose -f docker-compose.full.yml up -d
  1. 01Checks — what is there and what is missing
  2. 02Database — creating the tables
  3. 03Your store — name and basics
  4. 04Administrator — your account
  5. 05Content — start with or without a demo catalogue
  6. 06Done — first steps

Read the documentation before you trust a word of this.

31 pages, written next to the code and versioned with it. If the product could not back up this page, the docs would give it away immediately.